黑马程序员技术交流社区

标题: 多线程的实现和并发异常 [打印本页]

作者: 13956435978    时间: 2017-12-4 16:21
标题: 多线程的实现和并发异常
                                                                        技术贴
        在就业班二阶段的课程中,我们学了很多技术,在这些技术中,我说一下多线程,因为现在很多技术都需要使用多线程实现,而且多线程的应用也是非常广泛.
               
                首先我们要先了解多线程得定义:
                        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--);
                                                      }
                                                     }
                                                    }
                                                                                   }
                                                  }
                                                                       

作者: 奥斯托洛夫斯基    时间: 2017-12-8 16:03

作者: O-limin    时间: 2018-4-12 14:16

作者: hguilin    时间: 2018-4-12 14:38
66
作者: 美美就是美    时间: 2018-4-12 14:42

作者: 黑马啸西风    时间: 2018-4-12 14:51

作者: 项老师    时间: 2018-4-12 14:52

作者: 皖哥哥    时间: 2018-4-12 16:37
分享的很好,也让同学们学到了内容
作者: 小皖妹妹    时间: 2018-4-12 16:47

作者: IceLoveInFire丶    时间: 2018-4-12 19:16
不错不错(*๓´╰╯`๓)

作者: 骑着小猪看雪    时间: 2018-4-13 09:34
666
作者: 粼珂    时间: 2018-4-14 00:09
谢谢楼主
作者: O-limin    时间: 2018-5-3 16:05

作者: 黄桂林    时间: 2018-5-3 17:59
6666666666666
作者: 皖哥哥    时间: 2018-5-3 17:59
不错,超赞
作者: 黑马啸西风    时间: 2018-5-3 18:00

作者: 朱浩    时间: 2018-5-3 18:02
66666
作者: 美美就是美    时间: 2018-5-3 18:02

作者: 骑着小猪看雪    时间: 2018-5-4 10:22
不错嘛




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2