2021年2月1日星期一

JAVA多线程学习笔记整理

多线程:

  • 三种创建方法
    • 继承Thread类,以线程运行内容重写run方法,创建Thread对象并用start方法启动该线程。   

    (匿名内部类)

    (Lambda表达式)

    • 实现Runable接口,以线程运行内容实现run方法,创建Thread对象并输入Runable实现对象,以start方法启动该线程。

    

    • (不常用)实现Callable接口,传入一个泛型T,其类型与其返回值相同,实现其call方法,创建FutureTask任务对象并传入创建好的Callable对象,最后创建Thread对象并输入FutureTask任务对象,以start方法启动线程

    

  • 所有线程不可外部强制停止,应定义相关变量提示其他线程让其自行释放资源并关闭。
  • 用户线程和守护线程
    • 用户线程指通常我们创建的普通线程,进程会等待所有用户线程执行完毕停止。
    • 守护线程(deamon)指伴随用户线程一同运行的线程,当用户线程全部结束时,守护线程会即时停止。
  • 线程锁
    • 同步代码块(非公平):以任意一个对象为锁,通过synchronized(锁){//要锁的内容}来实现一段代码的同步化,指有且仅有一个线程能同时运行此处代码。
    • 同步方法(非公平):在定义方法时,通过在其定义返回值前添加synchronized来为此方法上锁:public synchronized void functionOne(){//要锁的内容}
    • Lock对象(可公平):定义一个锁对象,通过调用其方法来上锁(.lock())和解锁(.unlock()),可通过构造时传入true来设定公平锁(默认为非公平锁),又称为显式锁。、
    • 线程阻塞问题:多个线程等在同一把锁前。
    • 线程死锁问题:尽量避免同时触发两个锁。
  • 线程沟通问题:定义互通变量传递信息。
  • 线程池:多个线程的集合
    • 缓存线程池(ExcutorService es = Excutors.newCachedThreadPool()):长度无限制,如线程池中无空闲线程则创建线程放入线程池,然后使用。
    • 定长线程池(ExcutorService es = Excutors.newFixedThreadPool()):规定长度,如线程池中无空闲线程则等待线程池出现空闲线程,然后使用。
    • 单线程线程池(ExcutorService es = Excutors.newSingleThreadPool()):单线程线程池,池中只有一个线程,不空闲则等待其空闲,然后使用。
    • 周期定长线程池(ScheduledExecutorService ses =Excutors.newScheduledThreadPool()):规定长度,如池中无空闲线程,且池中线程不超长度,创建线程并放入线程池并使用。若超过长度,则等待出现空闲线程,然后使用。可指定一定时间后以一个时间间隔反复运行一个任务。
  • 线程的六种状态Thread.State:
    • NEW:尚未启动的线程
    • RUNNABLE:正在JVM中执行的线程
    • BLOCKED:被阻塞的线程
    • WAITING:无限期等待另一个线程执行特定操作的线程
    • TIMED_WAITING:有限期等待另一个线程执行操作的线程
    • TERMINATED:完成任务并关闭的线程

    以上内容大部分可在JAVA api 中查阅。此文档只用作个人的学习笔记整理。









原文转载:http://www.shaoqun.com/a/521249.html

跨境电商:https://www.ikjzd.com/

泛亚班拿:https://www.ikjzd.com/w/1262

拍拍:https://www.ikjzd.com/w/2205


多线程:三种创建方法继承Thread类,以线程运行内容重写run方法,创建Thread对象并用start方法启动该线程。       (匿名内部类)    (Lambda表达式)实现Runable接口,以线程运行内容实现run方法,创建Thread对象并输入Runable实现对象,以start方法启动该线程。    (不常用)实现Callable接口,传入一个泛型T,其类型与其返回值相同,实现其c
c88是什么:c88是什么
深诺互动:深诺互动
无单放货警告:遇到这种情况小心钱货两空:无单放货警告:遇到这种情况小心钱货两空
口述:我想追的妞好像喜欢我哥们 怎么办:口述:我想追的妞好像喜欢我哥们 怎么办
谨慎备货!Prime day又来了,但它离真正的旺季还很远:谨慎备货!Prime day又来了,但它离真正的旺季还很远

没有评论:

发表评论