多线程入门

扫码查看

线程与进程的区别?

进程就是多个线程的集合,每一个线程都是进行的执行路径。

线程的创建方式

1.继承Thread类

2.实现Runnable接口

3.匿名内部类,也是实现Runnable接口

总结:因为java是单继承多实现,所以使用实现比使用继承更灵活。

多线程的状态

1.新建状态 new线程实例的时候;

2.就绪状态 调用start方法返回的时候,还不会立马调用run方法,需要通其他线程竞争到cpu时间;

3.运行状态 执行run方法的时候;

4.阻塞状态 线程运行过程中由于某种原因阻塞了,如:

  1>调用sleep方法;

  2>调用wait方法,等待唤醒;

  3>调用I/O操作被阻塞;

  4>试图得到锁,而锁被其他线程所持有;

5.死亡状态 run方法执行完毕,或者run方法出现异常;

什么是线程安全问题

多个线程同时共享一个全局变量并进行写的操作,可能会发成数据冲突,就是线程安全问题。做读取操作不会有线程安全问题;使用同步或者lock锁啦解决线程安全问题;

synchronized使用

1>同步代码块,将可能会发生线程安全的代码使用synchronized关键字进行包装;

2>同步方法,使用synchronized修饰方法,使用的是this锁;

3>静态同步代码块,使用的锁是 类名.class;
01-07 06:40
查看更多