多线程
线程与进程进程:每个进程都有独立的代码和数据空间(进程上下文)进程间的切换会有较大的开销,一个进程包含1——那个线程。(进程是资源分配的最小单位)。
线程:同一类线程共享代码和数据空闲,每个线程有独立的运行占和程序计数器,线程切换开下小。(线程是cpu调度的最小单位。
并发与并行并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用TPS或者QPS来反应这个系统的处理能力。
线程安全指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时候使用多线程,我们只需要关注系统的内存,cpu是不是够用即可。反过来,线程不安全就意味着线程的调度顺序会影响最终结果,如不加事务的转账代码:
多线程对比多进程优势
进程之间不能共享数据,线程可以。
系统创建进程需要为该进程重新分配系统资源,故创建线程代价较小。
java内置多线程功能支持,简化了多线程编程。
线程创建和启动
继承Thread类创建线程
步骤 ...