A、Linux
B、POSIX
C、Windows
D、IOS
第1题:
在Pthread线程包的使用中,当用户需要结束一个线程时,可以使用的线程库函数是
A.pthread_create()
B.pthread_exit()
C.pthread_yield()
D.pthread_join()
第2题:
在线程创建函数中:pthread(pthread_t *thread, , ,)的第一个参数代表的是什么意义,和pthread_self()有什么区别呢?
函数原型:
pthread_t pthread_self(void);
函数作用:
获得线程自身的ID。pthread_t的类型为unsigned long int,所以在打印的时候要使用%lu方式,否则将产生奇怪的结果。
函数原型:
pthread_exit(void* retval);
函数作用:
线程通过调用pthread_exit函数终止执行,就如同进程在结束时调用exit函数一样。这个函数的作用是,终止调用它的线程并返回一个指向某个对象的指针。
注意:(某程序里的一段)
pthread_exit ("thread all done"); // 重点看 pthread_exit() 的参数,是一个字串,这个参数的指针可以通过
// int pthread_join (pthread_t tidp , void ** thread_return);赋值给其中的第二个参数,
//详见百度百科http://baike.baidu.com/view/3361775.htm
其他:
1、pthread_cleanip_push() 与 pthread_cleanip_pop()
先push后pop,且遵循堆栈先进后出的原则,push之后遇到pop则判断pop中的参数,非零则执行push中指定的清理函数,为零则不执行。
2、进程与线程,线程与线程都是并行运行,除非有pthread_join() 这种等待函数,虽说有的步骤先后不一定,但执行顺序在编译时会被决定,除非重新编译一次。
第3题:
在Pthread线程包中,线程操作pthread_join的含意是
A.创建一个新的线程
B.撤销一个线程
C.等待一个特定的线程退出
D.参加一个新的线程
第4题:
有如下C语言程序 void * th_f(void * arg) { printf("Hello World"); pthread_exit(0); } int main(voiD) { pthread_t tid; int st; st = pthread_create(&tid, NULL, th_f, NULL); if(st==0) printf("Oops, I can not createthread\n"); exit(NULL); } 针对上述程序,下列叙述中哪一个是正确的?
A.线程th_f运行后主动退出
B.线程th_f运行后等待一个特定的线程退出
C.线程th_f运行后主动释放CPU给其他线程
D.线程th_f运行后进入等待态
第5题:
在Pthread线程包中,线程操作pthread_yield表示的是
A.线程让出CPU
B.创建一个线程
C.阻塞一个线程
D.等待一个特定的线程退出
A