1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 线程间的同步和通信机制

线程间的同步和通信机制

时间:2023-08-08 20:54:06

相关推荐

线程间的同步和通信机制

先来了解了解什么是线程吧。

线程是为了提高系统内程序的并发执行的程度。

进程=资源+指令执行。线程是比进程要小的一个运行实体,有人称作是轻量进程,不过线程基本上是不拥有资源的。

百度百科的解释是:线程(thread, 台湾称“执行绪”)是进程中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。

线程间的同步和通信

在多线程OS中通常提供多种同步机制

1.互斥锁(mutex)

互斥锁比较简单,用于实现线程间对资源互斥访问的机制。有两种状态,开锁和关锁状态。

当一个线程需要读/写一个共享数据时,线程首先应该为该数据段所设置的mutex执行关锁命令。首先判别mutex的状态,如果已经处于关锁状态,则访问该数据段的线程将被阻塞;如果mutex处于开锁状态,则将mutex关上之后进行读/写。

完成读/写之后将mutex设置成开锁状态,并唤醒阻塞在该互斥锁上的线程。

2.条件变量

只利用mutex来实现互斥访问可能会引起互斥锁。

每个条件变量通常都与一个互斥锁一起使用,在创建一个互斥锁的同时便联系一个条件变量。单纯的互斥锁用于短期锁定,主要是保证对临界区的互斥进入,条件变量则用于线程的长期等待,直至等待的资源成为可用的资源。

3.信号量机制

1)私用信号量

当某线程需要利用信号量来实现同一进程间的各线程同步时,可调用创建信号量的命令来创建私用信号量。

2)公用信号量

公用信号量是为实现不同进程间或不同进程间各线程的同步而设定。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。