JUC学习(一)进程和线程,java真的能创建多线程?

进程和线程

进程:资源分配的最小单位,这举例子就是windows上最小单元便是进程。我们平常执行的exe等文件在计算机上的表现便是进程。
线程:CPU调度的最小单位,一个进程中至少有一个线程。
举个例子:我们的计算机是个大型的地铁乘换中心,每一个进程是在通道上的地铁。而线程则是组成地铁的车厢。一台地铁至少有一个车厢才能称之为地铁,当然也不能无限多的线程(理论最多上线程为2048)。

线程的几种状态

话不多说,上源码
JUC学习(一)进程和线程,java真的能创建多线程?
JUC学习(一)进程和线程,java真的能创建多线程?
线程状态:新建,阻塞,等待,超时等待,超时结束。(Java源码里的,不接受反驳)
此处解释下sleep和wati的区别,其实两这最大的区别就是sleep睡着了,抱着锁未释放,而wait则会释放锁,等待别人再次给你锁。(名词很形象)

Java中的线调用Thread调用

这是Java中调用Thread的方法,从这可以看出。java实际上并不是真正的可以创建线程。它是调用本地的start0去启动线程组中的线程,而statrt0这个方法则是调用本地线程。
JUC学习(一)进程和线程,java真的能创建多线程?
native这个关键字说明为:一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
“A native method is a Java method whose implementation is provided by non-java code.”
JUC学习(一)进程和线程,java真的能创建多线程?
从这看出java实际上是使用别的非java接口去创建线程,他本身无法创建线程。