乐趣区

关于java:多线程与高并发一

线程基本概念

程序:可执行文件
过程:操作系统进行资源分配的根本单位

比如说硬盘中有的一个 qq.exe 程序,咱们双击它,操作系统就会把它 load 到内存中,变成一个过程,并为它提供一些资源(文件描述符,端口号等等)。一个程序能够开启很多过程。

线程:过程外部调度执行的根本单位,多个线程共享资源
纤程:是用户态的线程,是线程中的线程,切换和调度不须要通过 OS(操作系统)

创立线程的 5 种形式

1. 继承 Thread 类,重写 run 办法
2. 实现 Runnable 接口,实现 run 办法(这种形式更好,因为一个类能够实现多个接口,但只能继承一个类)
3. 应用 Lambda 表达式
4. 应用线程池
5. 实现 callable 接口,实现 call 办法(callable 和 Runnable 的区别在于 call 办法是有返回值的 run 办法无返回值)

线程的状态

1.new:线程刚刚创立,还没有启动
2.runnable:可运行状态,由线程调度器能够安顿执行,包含 ready 和 running 两种细分状态
3.waiting:期待被唤醒
4.timed waiting:定时被唤醒
5.blocked:被阻塞,正等待锁
6.terminated: 线程完结

退出移动版