美文网首页
线程的基本语法

线程的基本语法

作者: 亮_be49 | 来源:发表于2019-03-26 23:01 被阅读0次

线程同步[解决线程安全问题]

解决线程安全问题

线程同步方式一:同步代码

语法基本

synchronized (同步监听对象) {

可能引发线程安全问题的代码

}

上面的结构相当于把{ }中的代码捆绑成一个整体,线程只能够一个一个的进来,执行完一个,下一个才能进来

语法特点

1. 上面的同步监听对象可以是任意的对象;

2. 保证所有的线程共享一个同步监听对象的;也就是保证被同步监听对象是被所有线程共享的。

3. 很多时候可以写this,但是请先参照②,

4. 常用的方式:使用类的字节码对象XXX.class

线程同步方式二:同步方法

1、就是在需要被同步的方法上面加关键字synchronized

2、加的位置:在返回值类型的前面

3、不需要也不能够显示的写同步监听对象

4、如果是一个非static的方法,那么同步监听对象就是this;

5、如果是static修饰的方法,那么同步监听对象就是当前方法所在的类的字节码对象

线程同步方式三:锁机制

1、学习方式(查找API文档方式)锁--Lock(API)接口  ---XXX实现类  

2、结果:没有同步到

3、原因:lock是一个实例变量,因此创建了3个TicketThread对象就有3个lock对象,没有同步到

4、解决办法:static lock  ; 或者使用实现的方式


线程通信与等待唤醒

线程之间的交流

如何实现

线程的生命周期

1、简单来说就是从什么时候开始,到什么时候结束

2、线程的声明周期分几个阶段:

① 创建  ;  例如  Thread  t = new Thread();

② 就绪  ;  调用了start方法  t.start()  ---> 告诉CPU我准备好了

③ 运行  ;  获得CPU的资源,开始执行线程体中的代码

④ 死亡  ;  有多种情况导致死亡,

     (1) 例如线程体执行完毕(自然老死);

      (2) 非自然死亡(异常没有处理好);

      (3) 对象失去引用

      (4) 对象被垃圾回收机制销毁

3、注意点:

① 休眠等操作可能导致正在运行的线程阻塞],阻塞完了(sleep完了)进入的是就绪状态

相互一一直等待,出现死锁!

② 一个线程死了就死了,不能够死而复生

相关文章

  • 线程的基本语法

    线程同步[解决线程安全问题] 解决线程安全问题 线程同步方式一:同步代码 语法基本 synchronized (同...

  • Android多线程基础

    线程的基本用法 Android多线程编程并不比Java多线程编程特殊,基本都是使用相同的语法。那么如何创建一个线程...

  • 软帝学院:80道java基础部分面试题(四)

    Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集...

  • Java面试题知识点

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • Java初级面试题

    1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...

  • 10探究服务-多线程编程

    线程的基本用法 andorid中的多线程编程和java中的多线程基本语法都是相同的,比如定义一个线程只需要新建一个...

  • Markdown语法

    Markdown基本语法 Markdown基本语法1 Markdown基本语法2(全、有用)

  • Swift 基本语法04-"switch"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法06-数组和字典

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法03-"if let"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法04-...

网友评论

      本文标题:线程的基本语法

      本文链接:https://www.haomeiwen.com/subject/sapovqtx.html