留言与评论(共有 0 条评论) |
发布时间:2020-04-12 08:40:52
你调用pthread_create之后就return掉了,然后程序结束了,在thread_fun执行之前就结束了,自然就没打印那个出来 你可以在pthread_create之后卡个几秒钟(用sleep)或者用pthread_join还是啥的等线程结束再退出,就能看到thread_fun的输出了
进程的生命周期:[1].创建---fork[2].执行---a.execb.子进程实现代码逻辑[3].结束---exit_exit僵尸态进程---waitwaitpid孤儿进程--------------------------------------进程存在的问题:(1).进程的创建---复制(时间和空间的开销很大)(2).进程的运行---调度-->pthread_create创建一个线程,thread是用来表明创建线程的ID,attr指出线程创建时候的属性,我们用NULL来表明使用缺省属性。start_routine函数指针是线程创建成功后开始执行的函数,arg是这个函数的唯一一个参数。表明传递给start_routine的参数。pthread_exit函数和exit函数类似用来退出线程.这个函数结束线程,释放函数的资源,并在最后阻塞,直到其他线程使用pthread_join函数等待它。然后将*retval的值传递给**thread_return.由于这个函数释放所以的函数资源,所以retval不能够指向函数的局部变量。pthread_join和wait调用一样用来等待指定的线程。下面我们使用一个实例来解释一下使用方法.在实践中,我们经常要备份一些文件。下面这个程序可以实现当前目录下的所有文件备份。
留言与评论(共有 0 条评论) |
全站搜索