线程VS进程
人话:电脑打开QQ软件就是打开了一个进程,其中的聊天,视频,充值服务等都可以看作是一个一个线程。QQ软件一个进程,微信软件一个进程,这两内存空间互不干扰;QQ进程下你既可以聊天,又可以打视频,可以相互切换,这是线程之间的切换(上下文切换)。
并行VS并发
人话:这么理解,两个人并行,并排行走,至少需要:两个人(线程),可以行走的路(两个CPU);两件事并发,比如边看电子榨菜边吃饭,这两件事就是并发的,同一时间段内发生的。
所以,人话:多核CPU下,并行相当于五条流水线同时干;并发相当于五条流水线轮流干,轮到谁(时间片给谁,任务调度器调度)了谁就干。
操作系统四大特性:并发,虚拟,异步,共享。
创建线程的方式
刚学:三种,分别是继承Thread类,实现Runnable接口,实现Callable接口配合FutureTask任务管理,再传入Thread。
学完复习:我是小丑,继承Thread类学起来快,写一个MyThread继承Thread,重写run方法,完美;实现Runable接口,差不多同理;而第三种是为了解决前面两种没有返回值,比如我之前做的抽奖池,需要多线程后的结果,就只能第三种,因为你不知道多线程什么时候结束。但是!!!