多线程可是一个很深的池子,本人初学。
首先讲解下并发与并行
并发:是指在同一个时刻一起运行。线程来回使劲切换。
并行:两个CPU同一个时间点一起运行。
创建 等待 运行 阻塞 死了五个状态是线程的描述。
java实现多线程有两种:extends Thread or implements Runnable
一般使用Runnable更体现面向对象,则很容易的实现资源共享。
程序一开始启动时候,jvm启动一个进程,然后调用主线程开始运行,后台还有垃圾回收线程,一看就是多线程。
守护线程与非守护线程:后台运行都是守护,当非守护线程也就是用户线程运行结束,好吧,守护尼玛呀,我也退了。
直接调用run,你玩单线程,调用start那玩多线程。
线程调度有优先级之分,top排序top级别。
线程的同步问题:一般使用synchronized来标记。