Threads в C
разобрался уже 

И в чем же было дело? Если ты расскажешь, это пригодится потомкам.
как я и подумал сразу - дело в синхронихранизации.то есть видимо не успевало сообщение вывестись до завершения основного потока.Запостил потому что когда я написал в мэйне после создания трэда цикл
for(i=0;i<10000;i++)
;
ничего не изменилось.
Как я потом понял(надеюсь правильно на этот раз надиралово было в том, что оптимзатор убрал этот цикл
и моя искуственная задержка пошла нах 
сделал нормально wait и все заработало
for(i=0;i<10000;i++)
;
ничего не изменилось.
Как я потом понял(надеюсь правильно на этот раз надиралово было в том, что оптимзатор убрал этот цикл
и моя искуственная задержка пошла нах 
сделал нормально wait и все заработало
Вывод буферезуется. В первом приближении в конце выведи перевод строки
printf("haha\n");
Во втором — ботай буфферизацию вывода.
printf("haha\n");
Во втором — ботай буфферизацию вывода.
нифига, с переносом не пашет.маза дело в задержке
Даже без оптимизации он мог не дотянуть до context switch. 10000 - это же курям насмех. 

я пробовал и так:
int k[10000];
...
for(i=0;i<10000;i++)
k[i]=i;
все равно нифига.и только вот так:
int k[10000];
...
for(i=0;i<10000;i++)
k[i]=i;
writeln(k[341]);
все стало ок.То есть надо было использовать результат цикла.
int k[10000];
...
for(i=0;i<10000;i++)
k[i]=i;
все равно нифига.и только вот так:
int k[10000];
...
for(i=0;i<10000;i++)
k[i]=i;
writeln(k[341]);
все стало ок.То есть надо было использовать результат цикла.
А кстатьи если вот я создаю новую нить, в которой выполняется функция.Если из этой функции я вызову другую обычным способом, то она в какой нити будет?В той же что и функция, откуда ее вызвали?
да
Оставить комментарий
skyformstd
почему не выводится сообщение?