Java 多线程并发编程

  创作不易,禁止转载!

并发编程简介 发展历程

  早起计算机,从头到尾执行一个程序,这样就严重造成资源浪费。然后操作系统出现了,计算机能运行多个程序,不同的程序在不同的单独的进程中运行,一个进程有多个线程提高资源的利用率。ok,如果以上你还不了解的话,我这里有2个脑补链接(点我直达1、点我直达2)

简介(百度百科)

  所谓并发编程是指在一台处理器上“同时处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。

目标(百度百科)

  并发编程的目标是充分利用处理器的每一个核,以达到最高处理性能

串行与并行的区别

  可能这个栗子不是很恰当仁者见仁智者见智智者get到点愚者咬文爵字,啊!你这个栗子不行,不切合实际,巴拉巴拉 .....为啥加起来2小时6分钟吃饭不要时间麽(洗衣服:把要洗的衣服塞到洗衣机,包括倒洗衣液等等3分钟;做饭:同理),你大爷的,吃饭的时候不能看电影嘛。好了,请出门右转,这里不欢迎杠精,走之前把门关上!!!通过这个栗子,可以看出做相同的事情,所花费的时间不同(这就是为啥工作中每个人的工作效率有高低了叭)。

Java 多线程并发编程

什么时候适合并发编程

任务阻塞线程,导致之后的代码不能执行:一边从文件中读取,一边进行大量计算

任务执行时间过长,可以瓜分为分工明确的子任务:分段下载文件

任务间断性执行日志打印

任务协作执行生产者消费者问题

并发编程中的上下文切换

  以下内容,百度百科原话(点我直达)。

  上下文切换指的是内核(操作系统的核心)在CPU上对进程或者线程进行切换。上下文切换过程中的信息被保存在进程控制块(PCB-Process Control Block)中。PCB又被称作切换桢(SwitchFrame)。上下文切换的信息会一直被保存在CPU的内存中,直到被再次使用。

  上下文切换 (context switch) , 其实际含义是任务切换, 或者CPU寄存器切换。当多任务内核决定运行另外的任务时, 它保存正在运行任务的当前状态, 也就是CPU寄存器中的全部内容。这些内容被保存在任务自己的堆栈中, 入栈工作完成后就把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU寄存器, 并开始下一个任务的运行, 这一过程就是context switch。

Java 多线程并发编程

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpppzw.html