A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 13956435978 中级黑马   /  2017-12-4 16:21  /  1036 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                                                                        技术贴
        在就业班二阶段的课程中,我们学了很多技术,在这些技术中,我说一下多线程,因为现在很多技术都需要使用多线程实现,而且多线程的应用也是非常广泛.
               
                首先我们要先了解多线程得定义:
                        1).多线程分为两点:
                                                1.进程:指某一个程序在内存中的执行单元;
                                                2.线程:指某一个程序的执行单元
                       
                        2).如何实现多线程java为我们提供了以下两种方法:
                                                1>.定义一个类继承Thread,重写Thread类的 run()方法;
                                                例如:定义一个类继承Thread
   public class  MyThread extends Thread(){
                    public void run(){};
        }
                                                    测试类
         public static void main(String[] args) {
         MyThread t=new MyThread();
         MyThread t1=new MyThread();
         调用该类的start();方法启动线程;
         t.start();
         t1.start();
                                                       
         }
                                                2>.1.定义一个类,实现Runnable接口,重写run()方法;
                                                   2.创建实现类对象,将该对象作为Thread类对象的构造方法进行传递参数。然后调用Thread对象的start()方法开启线程;
                                                            public class MyThread implements Runnable(){
                                                                  public void run(){
                                                         
                                                                  }
                                                  
                                                            }
                                                   测试类
                                                            public static void main(String[] args) {
         MyThread t=new MyThread();
         Thread t1=new Thread(t);
         Thread t2=new Thread(t);
         t1.start();
         t2.start();
         }
         3).多线程在运行时会出现的主要问题就是线程安全问题,即并发性异常,
         这时我们可以使用同步方法,来提高线程的安全性
         使用方法 synchronized()提高线程的安全性;
         在参数的传递上:
         非静态同步方法的锁对象是this
         静态同步方法锁对象是类的字节码对象
                                                                       
         示例代码:
                                                  public class MyThread implements Runnable(){
                                                  int num=100;
                                         
                                                  public void run(){
                                                  while(true){
可以使用this传递参数,谁调用就代表谁,这里的this代表的是该类的对象
         synchronized(this){
                           if(num > 0) {
                                    try {
                                             Thread.sleep(100);
                                             } catch (InterruptedException e) {
                                                      e.printStackTrace();
                                             }
                                                               
                                             System.out.println(Thread.currentThread().getName() + ":" +num--);
                                                      }
                                                     }
                                                    }
                                                                                   }
                                                  }
                                                                       

评分

参与人数 2技术分 +6 黑马币 +8 收起 理由
合肥就业部 + 8 赞一个!
皖哥哥 + 6 很给力!

查看全部评分

18 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
66
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
分享的很好,也让同学们学到了内容
回复 使用道具 举报
回复 使用道具 举报
不错不错(*๓´╰╯`๓)
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
666
回复 使用道具 举报
谢谢楼主
回复 使用道具 举报
回复 使用道具 举报
黄桂林 来自手机 初级黑马 2018-5-3 17:59:13
14#
6666666666666
回复 使用道具 举报
不错,超赞
回复 使用道具 举报
回复 使用道具 举报
朱浩 来自手机 黑马粉丝团 2018-5-3 18:02:22
17#
66666
回复 使用道具 举报
回复 使用道具 举报
骑着小猪看雪 来自手机 黑马粉丝团 2018-5-4 10:22:19
19#
不错嘛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马