[转](阿里笔试)使用多线程和sleep函数生成字符串的伪随机排列

时间:2022-05-24 07:55:25

http://blog.csdn.net/jiaowopan/article/details/12009079

C/C++(Linux平台)

注意编译连接时需要链接pthread库,即g++ XX.cpp -o XX -lpthread

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <pthread.h>
  4. void* thread(void* v)
  5. {
  6. char ch = *(char*)v;
  7. sleep(1);
  8. putchar(ch);
  9. }
  10. int main()
  11. {
  12. pthread_t id[7];
  13. int i ,ret;
  14. char str[] = "abcdefg";
  15. for(i = 0; i < 7; ++i)
  16. {
  17. ret = pthread_create(&id[i],NULL,thread,&str[i]);
  18. if(0 != ret)
  19. {
  20. printf("create pthread error\n");
  21. i--;
  22. }
  23. }
  24. for(i = 0; i < 7; ++i)
  25. pthread_join(id[i],NULL);
  26. printf("\n");
  27. return 0;
  28. }