信号

信号和线程

荒凉一梦 提交于 2019-12-09 20:58:19
万事皆有因 随着公司的业务不断扩大,我们在2013年底开始逐步的进入Java体系的阶段,不过谁都没有Java的经验,我们就决定自己动手丰衣足食的策略,学习,请教和顾问。经过2014年的一年的努力,成功的组建了一个Java团队,并尝试做了一些新业务和基础性组件。虽然比较顺利,但还是在我心中留下了许多疑问,例如说JVM的安全点和安全区,正好上周出差回来得到了一段时间的放松,又开始阅读了下JVM中的代码。 那么收获有什么呢? 纠正了自己以前一个错误的认识,VMThread的是JVM用来完成JVM内的事情的线程,并非执行OpCode的线程,而这正执行OpCode的线程是JavaThread。 发现了JVM进入安全区的一些原理,该原理和Linux的信号以及线程是有非常大的关系的。 Linux的线程 在Linux的上古时代,Linux的线程技术和POSIX的标准是不同的,它使用自己的LinuxThread库。这会为我们带来什么影响呢? 首先,我们说下POSIX是如何定义多线程的,POSIX下一个多线程的进程只有一个PID。从这个定义中,大家可能已经猜出LinuxThread的实现有什么不同了,对,就是LinuxThread下每个线程都有一个PID,每个线程在系统中的表现就如同进程一般。 其次,现代的Linux的线程已经完全符合POSIX的标准了。 总结就是,我们可以忽略这件事情(不要丢鸡蛋)。

Python3学习笔记11-标准库之子进程、信号、多线程、进程信息

别等时光非礼了梦想. 提交于 2019-11-28 23:56:57
关于进程与线程的简单理解(以工厂举例:cup-》工厂,车间-》进程,线程-》工人),可以参考阮一峰的博文 进程与线程的一个简单图文解释 一、子进程 (subprocess包) 这里的内容以Linux进程基础和Linux文本流为基础。 subprocess包 主要功能是 执行外部的命令和程序 。比如说,我需要使用wget下载文件。我在Python中调用wget程序。从这个意义上来说,subprocess的功能与shell类似。 1、subprocess以及常用的封装函数 当我们 运行python 的时候,我们都是在 创建并运行一个进程 。 一个进程 可以 fork 一个子进程,并让这个 子进程exec另外一个程序 。在Python中,我们通过标准库中的 subprocess包 来 fork一个子进程,并运行一个外部的程序 。 subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理**标准流(standard stream) 和 管道(pipe)**的工具,从而在进程间使用文本通信。 使用subprocess包中的函数创建子进程的时候,要注意: 在创建子进程之后,父进程是否暂停,并等待子进程运行。 函数返回什么 当returncode不为0时,父进程如何处理。 ###(1)