用多线程又有几种常用的编程模型
这里我可以给大家做一个大概的介绍,但是对于每一个编程模型,要看具体的例子是什么,我不可能给大家列出所有的代码。请理解。
其实只要我们试着站在编程的更高层次,你会发现你已经明白了很多道理。
就多线程而言,我们开始设想只有两个线程(> 2)。是数学归纳法吗?)那么如果有两个独立的线程会怎么样呢?
1。当一个线程进入moniter(也就是说使用了一个对象)时,另一个线程只等待或者返回,我们把这种返回称为a模式,英语里叫Balking。2.这两个线程可以有序地执行,而不是由操作系统来调度。这时候我们就用一个对象来调度。这种模式称为调度程序..
[br/]3。如果这两个线程同时在读一个资源,我们可以让他们执行,但是如果他们同时在写,你闭着眼睛就知道可能出问题了,然后我们就用另一种模式(读/写锁)。
4。如果一个线程服务于另一个线程,比如IE中负责数据传输的线程和界面显示的线程,当一张图片没有完成时,另一个线程无法显示,至少有一部分没有完成。这时候就要用一个叫生产者和消费者的模式,就是生产者-消费者。英语5分。两个线程的死亡可能不完全由OS控制。这时候我们需要给出一个条件,每个线程只有在满足条件的情况下才会死亡,也就是有序死亡。我们称之为两阶段终止。然后有了这五个线程模型,基本上就可以用在大部分编程任务中了。我需要指出三点:1。在高层次上,我们可以验证是否涵盖了所有情况。
0条评论