1.线程的历史
单进程人工切换 -纸带机 CPU利用率不高,CPU在等人切换纸带.
多进程批处理 -多个任务批量执行 ABCDE5个任务(一个QQ,一个微信,一个传奇,一个QQ音乐,一个WPS)批量执行,A卡住了,后面BC...都不能执行.
多进程并行处理- 把程序写在不同的内存位置上来回切换.
多线程-一个程序内部不同任务的切换.
-selector - epoll
纤程(java)/协程(go)-绿色线程,用户管理的线程(不是OS管理的).
什么是进程,操作系统找到磁盘上的QQ.exe ,并把它读到内存里面.操作系统为每一个进程分配一些资源,比如说内存空间、文件描述符、IO端口号等等.程序就放在硬盘上,真到他开始执行的时候,才把他放到内存里.放到内存后,哪个程序要执行,把他放到CPU去执行.一个程序有多个进程,但代码可以控制成只有一个进程,都可以。进程:操作系统进行资源分配的基本单位。是一个静态单位.
什么是线程:一个程序的不同执行路径 ,多线程一个程序有多个不同的执行路径. 程序是以线程为单位开始执行的,操作系统会找到我们的主线程main方法,扔给CPU去执行,主线程开启了别的线程 ,CPU A线程执行一会,B线程执行一会会产生线程,就产生了线程的切换. 线程是在进程的内部,是调度执行的基本单位。线程是一个动态的概念,多个线程共享同一个进程里面的所有资源.很多麻烦事在共享资源里面开始产生.
线程切换:
标签:java,程序,线程,切换,进程,执行,CPU From: https://www.cnblogs.com/belen87/p/16898218.html