• linux线程


    apue第十一章、十二章详细介绍线程。

    关于线程的头文件:

    #include <pthread.h>

    关于线程的函数:

    pthread_self() ,    //获取自己的线程ID

    pthread_create(),   //创建新线程,参数自己去翻

    pthread_exit(),    //结束线程

    pthread_join(),  //等待某个线程的结束,阻塞模式,当被等待的线程调用pthread_exit()时,此函数才返回。

    函数原型:extern int pthread_join __P ((pthread_t __th, void **__thread_return));

    注意:第一个参数为被等待的线程ID,第二个参数将返回被等待的线程执行pthread_exit((void* arg))时的参数arg,然后被等待的线程执行了pthread_exit()后,就会释放该线程的所有资源,所以该变量不能为被等待线程的局部变量,不然会内存越界。详见下面例子。

    注意:pthread_create()有可能在g++下编译不过,需要带上线程的一个编译库文件,比如: g++ hello.cpp -lpthread

    如果在codeblocks上需要添加链接库:

    Settings->Global compiler settings->Linker settings->add.....

    线程库文件一般在/usr/lib/libpthread.so , 如果没有就查找下:find / -name 'libpthr*' 

    如果查找不到就用root账户:apt-get install libpthread(名字可能不对)

    类型:

    进程的类型是pid_t , int

    线程的类型是pthread_t , unsigned long int

    线程终止:

    详见apue第十一章,

    如果进程中任意一个线程调用了exit,_Exit,_exit该进程就会终止~!!!

    单个线程终止有三种方法:

    1>从创建线程的回调函数中直接return , 也就是直接从启动例程中返回,返回值是线程的退出码。

    2>线程可以被同一进程中的其他线程取消

    2>线程调用pthread_exit

  • 相关阅读:
    AutoComplete控件
    META httpequiv 大全
    十四条必知的手机电池充电技巧
    什么是套接字
    理解HTTP session原理及应用
    Adodb.Stream取得图像的高宽
    微软Windows 7测试版下载网上泄露
    Oracle新手學習
    Oracle字符串函数
    Oracle的Window服务启动时并不启动实例
  • 原文地址:https://www.cnblogs.com/alazalazalaz/p/4376722.html
Copyright © 2020-2023  润新知