第十二章 并发编程如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent)。这种常见的现象称为并发(concurrency)。
硬件异常处理程序,进程和Unix信号处理程序都是大家熟悉的例子。
我们主要将并发看做是一种操作系统内核用来运行多个应用程序的机制。
但是,并发不仅仅局限于内核。它也可以在应用程序中扮演重要的角色。例如Unix信号处理程序如何允许应用响应异步事件
例如:用户...
分类:
移动开发 时间:
2016-06-01 06:51:40
阅读次数:
201
主要内容一、闪退信息传递过程二、Unix信号捕获异常三、NSUncaughtExceptionHandler捕获异常四、总结五、参考链接一、闪退信息传递过程底层内核产生Mach异常->通过转换发出Unix信号;所以我们可以通过监听Unix信号来获得闪退信息,当然如果通过捕获Mach异常来获取会更准确...
分类:
移动开发 时间:
2015-12-30 21:44:01
阅读次数:
1672
并发介绍 如果逻辑控制流在时间上是重叠的,那么它们就是并发的,可以出现在计算机系统的不同层面上,硬件异常处理程序、进程和Unix信号处理程序都是并发的。并发可以看作是操作系统内核用来运行多个应用程序的机...
分类:
编程语言 时间:
2015-08-17 12:21:33
阅读次数:
155
创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_create。在线程创建之后,就开始运行相关的线程函数。在该函数运行结束,线程也会随着退出。这是其中退出线程的一种方法,另外一种退出线程的方法就是调用pthread_exit()函数接口,这是结束函数的主动行为。在这里要注意的是,在使用线程函数时,不要轻易调用exit()函数,因为这样会使整个进程退出,往往一个进程包...
分类:
编程语言 时间:
2015-07-12 09:40:26
阅读次数:
180
参考书籍:unxi环境高级编程
信号函数:
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
其原型为:
void (*signal(int signum,void (*handler)(int))) (int);
我们一般都是用第一个,也就...
分类:
其他好文 时间:
2015-06-19 10:39:00
阅读次数:
107
附件:linux man手册关于signal的介绍 信号常常被称为“软中断”,和“中断”类似,用来通知程序发生异步事件。对信号的处理一般来说有三种方式:忽略,终止进程以及使用信号处理函数。信号处理函数的方式是从一处执行流断开,转而去运行另外的一处代码(信号处理),当处理函数返回时,继续从断开的...
分类:
系统相关 时间:
2015-06-09 00:41:07
阅读次数:
242
信号默认操作Term 表示进程会立即结束Core 表示进程会立即结束并进行核心转储(栈跟踪)lgn 表示进程会忽略该信号Stop 表示进程会暂停Cont 表示进程会回复运行信号值动作注释SIGHUP1Term由控制终端或控制进程终止时发出SIGINT2Term来自键盘的...
分类:
其他好文 时间:
2014-12-15 16:54:31
阅读次数:
342
接上一篇文章:CentOS6服务管理之DNS-主从DNS服务器的搭建RNDC管理DNS的实现rndc:(RemoteNameDomainController)基于套接字与named服务通信,控制named服务完成特定操作。是指通过bind软件引进的远程控制通道,代替unix信号来控制named进程,可以用来对配置进行重新载入,是一..
分类:
其他好文 时间:
2014-12-13 06:24:37
阅读次数:
184
一. 何时产生core.当程序接收到以下UNIX信号会产生core文件:名字说明ANSI C POSIX.1SVR4 4.3+BSD缺省动作SIGABRT异常终止(abort) . . . .终止w/coreSIGBUS硬件故障 . . .终止w/coreSIGEMT硬件故障 . .终止w/core...
分类:
其他好文 时间:
2014-09-11 20:44:02
阅读次数:
169