线程显著的特点是好用快但是容易崩而且是共享同一进程的数据的一个崩溃一个进程一锅都没了属于是串联式的蹦一个都不行 但是对于线程的有序控制和简单的竞争抑制是必修课程也就是控制多线程的尽量的有序运行。1、线程锁在使用线程锁之后一般是有竞态得一起用都得上可以通过线程的锁来锁定当前线程它的本质是1.1当上锁过后大家是一同上锁的但是只有一把锁被锁住的人才能去干事儿其他的人都会停在锁前面必须得等被锁住的那个人解锁过后才能有下一个人去被锁才能去做事儿其他的线程就抢不到这把锁了只能被阻塞在锁前面直到这个抢到锁的线程解锁一般来说谁抢到的锁相当于上锁了只能抢到的线程自己解开后才能再次去上锁。 几个要点 1、当竞争一把锁锁被抢到其他就只能等。 2、谁抢到的锁只能由谁来解。 3、锁被放出来后 所有的线程只要等在锁前面的都可以抢夺。 有了这几个特点过后就可以用线程锁进行简单的有序的控制。具体流程1、pthread_mutex_t mutex创建锁。2、pthread_mutex_init(mutex,NULL)锁初始化3、pthread_mutex_lock(mutex) 上锁4、pthread_mutex_unlock(mutex)解锁5、pthread_mutex_destroy(mutex) 销毁锁线程信号量semaphore 流程 1、sem_t sem创建信号量 2、sem_init(sem00中间一个默认一般为零如果唯一那么这个文件可用。为零则是在当前进程中的线程间使用为1则是可以跨进程使用 3、sem_waitsem;等待资源获取回去成功就往下执行否则阻塞 4、sem_postsem;唤醒 5、sem_destroysem;销毁锁通过信号量能让线程较为有序的资源分配和按序唤醒进而能实现有序的线程运行。模型简单介绍模型第一个模型生产者和消费者模型就是对现实问题的问题的运作框架提取成模型用模型思路来解决对应的问题。生产厂家不能无限制生产消费者也不能在没东西的时候消费。所以他们之间是相互促进和抑制的。生产厂家会根据消费者的情况来进行生产还有消费者的消费情况也间接促进了生产厂家的生产。那么当消费诶变慢的时候生产厂家也应该减慢产能同理当消费者消费速度变快的时候生产厂家也应该提升产量和效率。这样就能不浪费钱刚好合理的消费掉。这种对现实事物运行逻辑框架的提取把它的运行逻辑做成一个对应的框架这个框架就是模型。屏障达到指定线程数量后再一起运行。类似于满座的车才会发车一样。头文件bits/pthreadtypes.h