摘要: 互斥量mutex 进程间也可以使用互斥锁,来达到同步的目的。但应在pthread_mutex_init初始化之前,修改其属性为进程间共享。mutex的属性修改函数主要有以下几个。 主要应用函数: pthread_mutexattr_t mattr 类型: 用于定义mutex锁的【属性】 pthrea 阅读全文
posted @ 2019-08-21 17:07 王清河 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 借助 fcntl函数来实现锁机制。 操作文件的进程没有获得锁时,可以打开,但无法执行read、write操作。 fcntl函数: 获取、设置文件访问控制属性。 int fcntl(int fd, int cmd, ... /* arg */ ); 参2: F_SETLK (struct flock 阅读全文
posted @ 2019-08-21 17:07 王清河 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 进化版的互斥锁(1 --> N) 由于互斥锁的粒度比较大,如果我们希望在多个线程间对某一对象的部分数据进行共享,使用互斥锁是没有办法实现的,只能将整个数据对象锁住。这样虽然达到了多线程操作共享数据时保证数据正确性的目的,却无形中导致线程的并发性下降。线程从并行执行,变成了串行执行。与直接使用单进程无 阅读全文
posted @ 2019-08-21 17:06 王清河 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 条件变量: 条件变量本身不是锁!但它也可以造成线程阻塞。通常与互斥锁配合使用。给多线程提供一个会合的场所。 主要应用函数: pthread_cond_init函数 pthread_cond_destroy函数 pthread_cond_wait函数 pthread_cond_timedwait函数 阅读全文
posted @ 2019-08-21 17:05 王清河 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 读写锁 与互斥量类似,但读写锁允许更高的并行性。其特性为:写独占,读共享。 读写锁状态: 一把读写锁具备三种状态: 1. 读模式下加锁状态 (读锁) 2. 写模式下加锁状态 (写锁) 3. 不加锁状态 读写锁特性: 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁 阅读全文
posted @ 2019-08-21 17:03 王清河 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 控制原语对比 进程 线程 fork pthread_create exit pthread_exit wait pthread_join kill pthread_cancel getpid pthread_self 命名空间 线程属性 本节作为指引性介绍,linux下线程的属性是可以根据实际项目需 阅读全文
posted @ 2019-08-21 16:56 王清河 阅读(176) 评论(0) 推荐(0) 编辑
摘要: pthread_detach函数 实现线程分离 int pthread_detach(pthread_t thread); 成功:0;失败:错误号 线程分离状态:指定该状态,线程主动与主控线程断开关系。线程结束后,其退出状态不由其他线程获取,而直接自己自动释放。网络、多线程服务器常用。 进程若有该机 阅读全文
posted @ 2019-08-21 16:55 王清河 阅读(845) 评论(0) 推荐(0) 编辑
摘要: pthread_exit函数 将单个线程退出 void pthread_exit(void *retval); 参数:retval表示线程退出状态,通常传NULL 思考:使用exit将指定线程退出,可以吗? 【pthrd_exit.c】 结论:线程中,禁止使用exit函数,会导致进程内所有线程全部退 阅读全文
posted @ 2019-08-21 16:51 王清河 阅读(408) 评论(0) 推荐(0) 编辑
摘要: Python语言支持以下类型的运算符: l 算术运算符 l 比较运算符 l 赋值运算符 l 逻辑运算符 l 位运算符 l 成员运算符 l 身份运算符 l 运算符优先级 Python算术运算符 运行结果: robot@ubuntu:~/wangqinghe/python/20190821$ vim a 阅读全文
posted @ 2019-08-21 12:21 王清河 阅读(294) 评论(0) 推荐(0) 编辑