文字を書き込めない
Posted: 2010年7月21日(水) 17:21
メインのスレッドでひたすらbufに"B"を書き込む
サブのスレッドでひたすらbufに"A"を書き込み出力する
ということを1000回繰り返しました。
しかし、一回も"B"が書き込まれることなく終了してしまいました。
この方法で一回でいいからBと出力して欲しいのですが可能でしょうか?
===================ここから===============================
#include <windows.h>
#include <stdio.h>
char buf[1024];
int j=1000;
DWORD WINAPI SubThread(LPVOID vdParam) {
int i=0;
while (i<j) {
strcpy(buf,"A");
printf(buf);
i++;
}
ExitThread(TRUE);
}
int main(void){
int i=0;
char a[1024];
CreateThread(NULL , 0 , SubThread , NULL , 0 ,NULL);
while (i<j) {
strcpy(buf,"\nB\n"); //探しやすいようにBの前後に改行を入れました
i++;
}
gets(a); //結果をコンソール上で見るために終了させないようにするためです
return 0;
}
====================ここまで============================
サブのスレッドでひたすらbufに"A"を書き込み出力する
ということを1000回繰り返しました。
しかし、一回も"B"が書き込まれることなく終了してしまいました。
この方法で一回でいいからBと出力して欲しいのですが可能でしょうか?
===================ここから===============================
#include <windows.h>
#include <stdio.h>
char buf[1024];
int j=1000;
DWORD WINAPI SubThread(LPVOID vdParam) {
int i=0;
while (i<j) {
strcpy(buf,"A");
printf(buf);
i++;
}
ExitThread(TRUE);
}
int main(void){
int i=0;
char a[1024];
CreateThread(NULL , 0 , SubThread , NULL , 0 ,NULL);
while (i<j) {
strcpy(buf,"\nB\n"); //探しやすいようにBの前後に改行を入れました
i++;
}
gets(a); //結果をコンソール上で見るために終了させないようにするためです
return 0;
}
====================ここまで============================