进程: 就是一个程序,比如QQ、微信、一个jar包,一个进程往往可以包含多个线程,至少包含一个!java默认有两个想成,main 和GC
**线程:**开了一个QQ软件,发消息、打电话等等(线程负责)
java无法直接操作硬件,java不可以真的开启线程,而是通过调用本地的方法
并发(多线程操作同一个资源)
并行(多个人一起行走)
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;
}
1.他们来至不同的类
wait=>Object
sleep=>Thread
2.关于锁的释放
wait会释放锁,sleep睡觉了,抱着锁睡觉,不会释放!
3.使用范围是不同的
wait必须在同步代码块中
sleep可以在任何地方睡