多线程的含义(MultiThreading)

多个线程在同一个程序中同时运行。(一个线程就是一个CPU单位)

JAVA多线程和并发解决实现之初探多线程(一)_多线程


如图,可以看到可以同时启12个线程,一个线程是一个cpu单位,但一个线程不是一个cpu,所以常常听到什么6核12线程,8核16线程。

多线程的好处(The benefits of MultiThreading)

1.充分利用计算机性能,充分使用CPU。
2.更好的用户体验。(更快)

多线程的缺点

单核CPU和多核CPU。一个CPU上的线程不是真正意义上的并发,所以单核CPU不存在并发的问题。而多核CPU不同CPU的线程之间是可以实现真正意义上的并发。(I’m not sure, but I think it’ true, because I have read it form a real CS giant.)

Java中的线程模型

不同线程可以共享一个JAVA程序中的对象。

/**
 * @author: create by liubh
 * @email lbhbinhao@gmail.com
 * @date:2020/3/15
 */
public class ShareStateTest {
    public static void main(String[] args) {
        Integer testValue = new Integer(20);
        new Thread(()->{
            System.out.println(testValue);
        }).start();
        
    }
}

新创建的线程中可以读取创建的对象,但不能做修改。
写上赋值语句idea中会提示
Variable used in lambda expression should be final or effectively final。
这是因为启动线程执行的代码都是自己实现的run()方法,是一个空参方法