线程同步

时间:2016-06-19 10:42:28

标签: multithreading synchronization

我有一个简单的程序,你可以在下面找到。问题是两个线程是否可以在给定以下设置的情况下并行运行:
1.一个核心处理器,
2.两个核心处理器,
3.两个核心处理器。
该计划是否存在竞赛风险?

这是我迄今为止所发现的:
1.一个核心处理器 - 技术上线程不是并行运行的,它们只是这样,因为CPU在它们之间切换非常快 2.两个核心处理器 - 可以并行(同时)运行的线程数等于核心数,因此是,在这种情况下,2个线程可以并行运行。
3.两个核心处理器??

L1:全球

int t1_next=1;
int t2_next=0;

L2:线程1

while(1) {
  if(t1_next){
    printf("a");
    printf("b");
    printf("c");
    printf("d");
t1_next=0;
t2_next=1;}
else sleep(10);
}

L3:线程2

while(1) {
  if(t2_next){
    printf("e");
    printf("f");
    printf("g");
    printf("h");
t1_next=1;
t2_next=0;}
else sleep(10);
}

0 个答案:

没有答案