并发,同步,互斥,异步,阻塞,非阻塞的理解
- 并发(concurrency):在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥
- 同步(synchronous):线程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个线程的输出作为后一个线程的输入,当第一个线程没有输出时第二个线程必须等待。具有同步关系的一组并发线程相互发送的信息称为消息或事件。
- 互斥:线程间相互排斥的使用临界资源的现象,就叫互斥
- 异步(asynchronous):异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
- 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。
- 非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回
本文探讨了操作系统中的并发概念,指多个程序在同一时间段内运行,并区分了同步与互斥的关系。同步涉及线程间的依赖,当一个线程未完成时,其他线程需要等待。互斥则是线程间对临界资源的排斥使用。异步则表示线程独立执行,不需等待。同时解释了阻塞和非阻塞调用的区别,阻塞会挂起当前线程,而非阻塞则允许线程立即返回继续执行其他任务。
1060

被折叠的 条评论
为什么被折叠?



