野生程序员 野生程序员

               流年,长短皆逝 浮生,往来皆客。  

目录
线程和进程(JUC-01)
/  

线程和进程(JUC-01)

线程和进程

进程: 就是一个程序,比如QQ、微信、一个jar包,一个进程往往可以包含多个线程,至少包含一个!java默认有两个想成,main 和GC

**线程:**开了一个QQ软件,发消息、打电话等等(线程负责)

java无法直接操作硬件,java不可以真的开启线程,而是通过调用本地的方法

并发和并行

并发(多线程操作同一个资源)

  • CPU 一核,模拟出来多条线程,快速交替。

并行(多个人一起行走)

  • CPU多核,多个吸纳成可以同时执行;线程池
public class Test1 {
    public static void main(String[] args) {
        //获取cpu核心数
        //cpu密集型,IO密集型
        System.out.println(Runtime.getRuntime().availableProcessors());
    }
}

并发编程的本质

就是去充分利用CPU的资源

线程有几个状态

public enum State {
       //新生
        NEW,

       //运行
        RUNNABLE,

       //阻塞
        BLOCKED,

      //等待,死死的等
        WAITING,

       //超时等待
        TIMED_WAITING,
       //终止
        TERMINATED;
    }

wait/sleep区别

1.他们来至不同的类

wait=>Object

sleep=>Thread

2.关于锁的释放

wait会释放锁,sleep睡觉了,抱着锁睡觉,不会释放!

3.使用范围是不同的

wait必须在同步代码块中

sleep可以在任何地方睡


标题:线程和进程(JUC-01)
作者:野生程序员
地址:http://www.yscxy.net/articles/2020/11/19/1605777193126.html