1.知识重点

  1. 程序是静态,进程是动态。
  2. 一个程序对应一个进程,
  3. 进程中可以启动多线程,
  4. java首先开始运行是main线程。
  5. 后面我们可以自己加线程类。完成多线程。
  6. 官方解释
  7. 学习多线程知识点,transient

2.transient知识

如果在序列化类中想要不序列化,就用transient修饰不会序列化

3.进程实现

3.1Thread

  • 如Runing类继承进程Tread类
  • 重写run方法
  • 则实例化类,如Runing runing=new runing();
  • runing.start();线程开始跑里面的代码(一般里面是死循环)

3.2Runable

  • 通过继承Runable接口使Runing2类成为目标类
  • Runing2 runing2=new Runing2();
  • Thread thread=new Thread(runing2);传入目标类
  • thread.start();//则都线程开始了。跑runing2中的run方法。

4.线程的生命周期

  • 新建状态(New)
  • 可执行状态(Runnable)
  • 运行状态(Running)
  • 阻塞状态(Blocking)
  • 死亡状态(Dead)
  • 进入阻塞状态的三种情况
  1. 调用sleep方法
  2. 调用join方法
  3. 执行I/O操作
    学习多线程知识点,transient学习多线程知识点,transient

4.1interrupt方法调用

把握几个重点:stop变量、run方法中的sleep()、interrupt()、InterruptedException。
串接起 来就是这个意思:当我们在run方法中调用sleep(或其他阻塞线程的方法)时,如果线程阻塞的 时间过长,比如10s,那在这10s内,线程阻塞,run方法不被执行,但是如果在这10s内,stop被 设置成true,表明要终止这个线程,但是,现在线程是阻塞的,它的run方法不能执行,自然也就 不能检查stop,所以线程不能终止,
这个时候,我们就可以用interrupt()方法了:我们在 thread.stop = true;语句后调用thread.interrupt()方法, 该方法将在线程阻塞时抛出一个中断 信号,该信号将被catch语句捕获到,一旦捕获到这个信号,线程就提前终结自己的阻塞状态,
这 样,它就能够再次运行run 方法了,然后检查到stop = true,while循环就不会再被执行,在执 行了while后面的清理工作之后,run方法执行完毕,线程终止。

5.线程优先级

学习多线程知识点,transient学习多线程知识点,transient

6.线程同步

学习多线程知识点,transient学习多线程知识点,transient学习多线程知识点,transient

7.线程通信

学习多线程知识点,transient
学习多线程知识点,transient

相关文章:

  • 2019-02-05
  • 2021-06-28
  • 2021-12-14
  • 2021-09-19
  • 2019-11-18
  • 2020-01-13
  • 2019-09-03
  • 2018-02-06
猜你喜欢
  • 2021-11-13
  • 2019-11-22
  • 2021-12-08
  • 2021-11-29
  • 2021-11-11
  • 2021-11-27
  • 2021-12-08
  • 2021-12-28
相关资源
相似解决方案