线程

多线程存在的意义:

  一个进程中允许多个任务可以同时执行

多线程的创建方式:

  方式一:继承thread

    1.自定义一个类继承thread

    2.重写thread的run方法,把自定义线程的任务代码放在run方法上

    3.创建thread类的子类对象,并且调用start方法开启线程

    (线程一旦开启,就会执行run方法中的代码)

  方式二:实现Runnable接口

    1.自定义一个类实现Runnable接口

    2.实现Runnable的run方法

    3.创建Runnale实现类的对象

    4.创建Thread的对象,然后把Runable实现类的对象作为参数传递

    5.调用thread对象的start方法开启线程

java中的同步机制:

出现线程安全问题的根本原因:

  1.存在两个或者两个以上的线程共享资源

  2.操作资源的代码块必须有语句

  

1.同步代码块

    同步代码块格式:

      1 synchronized(锁对象){ 2 需要被同步的代码块。。。 3 } 

    同步代码块要注意的细节:

      1.锁对象可以是任意对象。

      2.锁对象必须是多线程共享的一个资源,否则锁不住

      3.没有线程安全问题的时候不要使用锁,因为会导致效率降低

      4.调用sleep方法并不会释放对象,但是调用wait方法的线程会释放对象

 

2.同步函数

  修饰符 synchronized 返回值类型 函数名(形参列表){

  }

注意:  

  1.同步函数的锁对象不能使任意的,非静态同步函数的锁对象是this对象,静态函数的锁对象是当前字节码对象

  2.同步函数的锁不能由你决定,是固定的

原文地址:https://www.cnblogs.com/syousetu/p/6517758.html