面試題 多執行緒程式設計

2021-09-20 07:43:51 字數 2315 閱讀 9128

題目:

四個執行緒 t1,t2,t3,t4,向 4 個檔案中寫入資料, t1 只能寫入 1, t2 只能寫入 2, t3 只能寫

入 3, t4 只能寫入 4,對 4 個檔案 a, b, c, d 寫入如下內容

a:123412341234.....

b:234123412341....

c:341234123412....

d:412341234123....

怎麼實現同步可以讓執行緒並行工作?

用windows c++實現.

//

222_thread.cpp : 定義控制台應用程式的入口點。

//#include

"stdafx.h

"#include

#include

#include

using

namespace

std;

handle ghmutex;

handle handles[

4][4

];int idxx = 1

;void

threada()

cout

<< 1

; idxx++;

releasemutex(ghmutex);

} while (idxx < 50

);

}void

threadb()

cout

<< 2

; idxx++;

releasemutex(ghmutex);

} while (idxx < 50);}

void

threadc()

cout

<< 3

; idxx++;

releasemutex(ghmutex);

} while (idxx < 50);}

void

threadd()

cout

<< 4

; idxx++;

releasemutex(ghmutex);

} while (idxx < 50);}

void

writea()

void

writeb()

void

writec()

void

writed()

int _tmain(int argc, _tchar*ar**)

}dword threadid;

createthread(null,

0, (lpthread_start_routine)threada, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)threadb, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)threadc, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)threadd, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)writea, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)writeb, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)writec, null, 0, &threadid);

createthread(null,

0, (lpthread_start_routine)writed, null, 0, &threadid);

ghmutex =createmutex(

null,

//default security attributes

false, //

initially not owned

null); //

unnamed mutex

if (ghmutex ==null)

sleep(

60000

);

return0;

}

個人部落格:

面試題 多執行緒程式設計

題目 四個執行緒 t1,t2,t3,t4,向 4 個檔案中寫入資料,t1 只能寫入 1,t2 只能寫入 2,t3 只能寫 入 3,t4 只能寫入 4,對 4 個檔案 a,b,c,d 寫入如下內容 a 123412341234.b 234123412341.c 341234123412.d 41234...

多執行緒程式設計面試題

衝擊大廠必備 第一種實現方法,使用wait notify方法實現 public static void main string args char arr2 object o newobject new thread catch exception e start new thread catch ...

多執行緒面試題

題目 主線程執行10次,子執行緒執行10次,此過程重複50次 package com.thread.test function 主線程執行10次,子執行緒執行10次,此過程重複50次 public class threadproblem start for int j 0 j 50 j class ...