(阿里笔试)使用多线程和sleep函数生成字符串的伪随机排列
2013-09-25 14:12
323 查看
写在前面:这是阿里巴巴2014校园招聘2013.9.22杭州站的笔试题目,下面分别给出windows和linux平台的c/c++版本。
1. C/C++(windows平台)
2. C/C++(Linux平台)
注意编译连接时需要链接pthread库,即g++ XX.cpp -o XX -lpthread
1. C/C++(windows平台)
//生成字符串的伪随机排列 #include <stdio.h> #include <Windows.h> #include <process.h> #include <string> unsigned int __stdcall Fun(void* pM) { Sleep(10); char ch = *(char*)pM; putchar(ch); return 0; } int main() { std::string str = "abcdefg"; HANDLE handle[7]; for(int i = 0; i < 7; ++i) handle[i] = (HANDLE)_beginthreadex(NULL,0,Fun,&str[i],0,NULL); WaitForMultipleObjects(7,handle,TRUE,INFINITE); return 0; }
2. C/C++(Linux平台)
注意编译连接时需要链接pthread库,即g++ XX.cpp -o XX -lpthread
#include <stdio.h> #include <unistd.h> #include <pthread.h> void* thread(void* v) { char ch = *(char*)v; sleep(1); putchar(ch); } int main() { pthread_t id[7]; int i ,ret; char str[] = "abcdefg"; for(i = 0; i < 7; ++i) { ret = pthread_create(&id[i],NULL,thread,&str[i]); if(0 != ret) { printf("create pthread error\n"); i--; } } for(i = 0; i < 7; ++i) pthread_join(id[i],NULL); printf("\n"); return 0; }
相关文章推荐
- lua编译
- OSX系统编译cocos2dx andriod工程
- 多玩LOL盒子 3.5.1
- struts2 中action返回的类型
- LeetCode - Same Tree
- SQL(一) cursor用法
- GDB 详解
- iframe子页面与父页面js通信方式
- iframe子页面与父页面js通信方式
- 动态规划求解最长公共子串
- PKU3013(Big Christmas Tree)-最短路径-SPFA
- 请问在C#的Winform下如何用正则表达式限制用户只能在textBox中输入18位的身份证号码。
- 值得尝试的七大前沿性编程实验
- 回流与重绘补充
- 和TabActivity相关的一些事
- 数据结构(5)之单链表的操作(补充)
- php程序的安全要素
- iOS7常用控件尺寸
- DEDE SQL标签可以获取文档静态链接地址
- DEDE SQL标签可以获取文档静态链接地址