- 前言
- linux下关于并行编程有两种实现方式:fork和pthread_create;其实内核中的执行路径是相同的,只是flags不一样罢了。本文的主题是关于pthread_create多线程编程中想要注意的一些知识点。
- 提多线程编程,就不可不提互斥以及同步,这两个概念摆在这,或许有很多人不屑,然而事实上可能很多人真的还不清楚。
- 概念
- 互斥:针对共享资源,如果不是共享资源,何需谈互斥。同一时刻,不能有两个或两个以上的线程操作同一个共享资源,这就是互斥。
- 同步:在某一个点,必须满足某个条件,才能进行下一步操作。至于当达到这个条件后,允许多少个线程同时进行下一步操作,这个是没有限制的。
- 技术
- 互斥锁(pthread_mutex_t):互斥。
- 读写锁(pthread_rwlock_t):变种的互斥。
- 条件变量(pthread_cond_t):同步。
- 信号量(sem_t):同步。
- 实例
- 附加
- 使用pthread_create创建的thread,使用getpid获取不到pid号,而应该使用gettid。http://man7.org/linux/man-pages/man2/gettid.2.html
- 引用
linux下多线程编程pthread 同步 互斥
最新推荐文章于 2024-08-31 14:57:20 发布