进程和线程都会的切换都要消耗时间,保存线程进程当前状态以便下次继续执行。在不怎么需要cpu的程序中,即相对于IO密集型的程序,协程相对于线程进程资源消耗更小,切换更快,更适用于IO密集型。协程也是单线程的,没法利用cpu的多核,想利用cpu多核可以通过,进程+协程的方式,又或者进程+线程+协程。 1 ...
分类:
编程语言 时间:
2018-10-07 12:14:03
阅读次数:
161
进程通信的目的 数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 资源共享 多个进程之间共享同样的 ...
分类:
系统相关 时间:
2018-10-06 16:36:59
阅读次数:
247
参考链接https://www.linuxprobe.com/ ...
分类:
系统相关 时间:
2018-10-04 00:00:33
阅读次数:
192
一、竞争与同步 当多个线程同时访问其所共享的进程资源时,需要相互协调,以防止出现数据不一致、不完整的问题。这就叫线程同步。 二、互斥量 int pthread_mutex_init (pthread_mutex_t* mutex,const pthread_mutexattr_t* mutexatt ...
分类:
编程语言 时间:
2018-09-21 19:47:13
阅读次数:
241
1、进程与线程 进程是指一个程序的执行过程,持有资源和线程 线程是系统中最小的执行单元,一个进程可以有多个线程,线程共享进程资源,具有同步(线程的协作)与互斥(资源的争抢) 例如:我们一个班级当做一个进程,班级里面的学生就是线程,里面的学习工具就是资源,学生们的相互协作与竞争就是线程之间的同步与互斥 ...
分类:
编程语言 时间:
2018-09-15 16:41:04
阅读次数:
201
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9613861.html 好了,继上一篇说到多进程服务端也是有缺点的,每创建一个进程就代表大量的运算与内存空间占用,相互进程数据交换也很麻烦。 本章的I/O模型就是可以解决这个问题的其中一种模型。。 ...
分类:
编程语言 时间:
2018-09-09 16:03:39
阅读次数:
226
排查线上问题常用的几个Linux命令 https://www.cnblogs.com/cjsblog/p/9562380.html top 相当于Windows任务管理器 可以看到,输出结果分两部分,前5行是总览,下面是具体的进程资源占用情况。下面逐行看一下 第1行 top 18:14:58 up ...
分类:
系统相关 时间:
2018-09-04 19:10:08
阅读次数:
208
我们知道,同一个进程中的多个线程共享进程资源,包括主内存、文件句柄、锁资源等。那么当一个线程死了(非正常退出、死循环等)就会导致线程该占有的资源永远无法释放,从而影响其他线程的正常工作,看下面一个例子。 输出: 可以看到,第二个线程并没有执行下去。原因如下: 在第一个线程threadRuntimeE ...
分类:
编程语言 时间:
2018-09-02 11:56:37
阅读次数:
159
用途 查看机器负载以及进程资源占用情况,linux系统性能分析工具 用法 常用选项 | 选项 | 用途 | | : | : | | a | 进程列表根据内存占用大小排序 | | b | 以batch模式运行 | | c | 显示完整命令名或者不显示,每次执行跟上一次执行记录的状态相反 | | d s ...
分类:
系统相关 时间:
2018-07-19 13:41:16
阅读次数:
194
知识点一: 进程:资源单位 线程:才是CPU的执行单位 进程的运行: 开一个进程就意味着开一个内存空间,存数据用,产生的数据往里面丢 线程的运行: 代码的运行过程就相当于运行了一个线程 辅助理解:一座工厂(操作系统)->没造一个车间(启动一个进程)->每个车间的流水线(线程) 知识点二:开启线程的2 ...
分类:
编程语言 时间:
2018-07-13 19:03:05
阅读次数:
142