首页 > 试题广场 >

请问单核机器上写多线程程序,是否需要考虑加锁,为什么?

[问答题]

请问单核机器上写多线程程序,是否需要考虑加锁,为什么?

<p>比如printf函数,当有两个线程A.B,当A写了一半时缓存满了,A会临时退出挂起,此时B就可能插入先写,然后迁入A继续,就会导致串行</p>
发表于 2020-06-10 19:11:37 回复(0)
在单核机器上写多线程程序,仍然需要线程锁。因为线程锁通常用来实现线程的同步和通信。在单核机器上的多线程程序,仍然存在线程同步的问题。因为在抢占式操作系统中,通常为每个线程分配一个时间片,当某个线程时间片耗尽时,操作系统会将其挂起,然后运行另一个线程。如果这两个线程共享某些数据,不使用线程锁的前提下,可能会导致共享数据修改引起冲突。
发表于 2020-04-24 17:13:35 回复(0)