当前位置: 技术问答>linux和unix
Linux下多线程互斥问题
来源: 互联网 发布时间:2015-11-23
本文导语: Linux下多线程问题,向大家请教: (1)多个线程对同一文件进行操作,如果不加锁是否会出现问题?(感觉应该会,但没遇到) (2)多个线程中都执行printf语句,如果不加锁是否会有问题。 如:thread1: prin...
Linux下多线程问题,向大家请教:
(1)多个线程对同一文件进行操作,如果不加锁是否会出现问题?(感觉应该会,但没遇到)
(2)多个线程中都执行printf语句,如果不加锁是否会有问题。
如:thread1: printf("Freezing");
trread2: printf("Freezing");
那么是否出现终端输出混乱的情况“FFrree...”,也就是说在多线程情况下,printf是否是一个原
子操作?如果不是,将有可能有问题。
(1)多个线程对同一文件进行操作,如果不加锁是否会出现问题?(感觉应该会,但没遇到)
(2)多个线程中都执行printf语句,如果不加锁是否会有问题。
如:thread1: printf("Freezing");
trread2: printf("Freezing");
那么是否出现终端输出混乱的情况“FFrree...”,也就是说在多线程情况下,printf是否是一个原
子操作?如果不是,将有可能有问题。
|
多个线程同时printf肯定会有问题,我遇到过,对同一文件同时写也会有问题,除非操作系统不允许对文件的同时写操作
|
1)会有问题
2)不是原子操作
2)不是原子操作
|
1)会有问题
2)会有问题 我也遇到过,输出一半就没有了!
2)会有问题 我也遇到过,输出一半就没有了!
|
printf是不可重入函数,所以在多进程和多线程中会出问题
|
(1)多个线程对同一文件进行操作,如果不加锁是否会出现问题?(感觉应该会,但没遇到)
不会出问题,不过是在你不写文件的情况下,如果写文件会出现文件内容不可预期而已
(2)多个线程中都执行printf语句,如果不加锁是否会有问题。
问题是不会有,只不过很有可能打印出来的东西。。。。。
不会出问题,不过是在你不写文件的情况下,如果写文件会出现文件内容不可预期而已
(2)多个线程中都执行printf语句,如果不加锁是否会有问题。
问题是不会有,只不过很有可能打印出来的东西。。。。。
|
你写个循环,不停的输出
别只写一个啊
别只写一个啊