int pthread_equal(pthread_t th1,pthread_t th2);
pthread_equal函数比较th1与th2是否为同一线程,由于不可以讲pthread_t数据类型认为是整数,所以也不能用比较整数的方式比较pthread_t。
如果th1与th2相同,函数返回非0值,如果不同函数返回0。
线程属性
--以前调用pthread_create传入的attr参数都是空指针,而不是指向pthread_attr_t结构的指针,
--可以使用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。
--可以使用pthread_attr_init函数初始化pthread_attr_t结构。
--调用pthread_attr_init以后,pthread_attr_t的结构所包含的内容就是操作系统实现支持线程所有属性的默认值。如果要修改其中个别属性的值,需要调用其他函数。
int pthread_attr_destroy(pthread_attr_t *attr);
int pthread_attr_init(pthread_attr_t *attr);
函数pthread_attr_init初始化attr结构。
函数pthread_attr_destroy释放attr内存空间
pthread_attr_t的结构对于应用程序来讲是不透明的,应用程序不需要了解结构的内部组成。
以前介绍了pthread_detach函数的概念,可以通过pthread_attr_t在创建线程的时候就指定线程的属性为detach,而不用创建以后再去修改线程属性。
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
函数pthread_attr_setdetachstate把线程属性设置为下面两个合法值之一
--PTHREAD_CREATE_DETACHED 设置线程为分离状态
--PTHREAD_CREATE_JOINABLE 设置线程为正常状态
//pthread_create()函数第二个参数的使用
#include <stdio.h>
#include <stdlib.h>
#include <string.h> #include <unistd.h>
#include <errno.h>
#include <pthread.h> void * MyFunc(void *arg)
{
while()
{
printf("fly the air\n");
sleep();
}
return NULL;
} int main(int arg,char * args[])
{
pthread_t thr1;
pthread_attr_t attr;
pthread_attr_init(&attr);
//设置进程为可分离状态
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
//创建线程
if(pthread_create(&thr1,&attr,MyFunc,NULL)!=)
{
printf("create thread is failed ! error message :%s\n",strerror(errno));
return -;
}
//释放进程属性对象
pthread_attr_destroy(&attr);
/*
被分离的线程无法用pthread_join()函数接受
*/
pthread_join(thr1,NULL);//无效调用
sleep();
printf("main end\n");
return ;
}

Linux 进程与线程三(线程比较--创建线程参数)的更多相关文章

  1. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中

     本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法的区别 为什么wait( ...

  2. Java多线程(三)如何创建线程

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  3. java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器

    多线程并发就像是内功,框架都像是外功,内功不足,外功也难得精要. 1.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 用工厂来比喻就是,一个工厂可以生产不同种类的产品,操作系统就是 ...

  4. Java基础_线程的使用及创建线程的三种方法

    线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...

  5. linux线程笔记1之创建线程

    1 线程与进程的对比 这里有一个笔记详细的阐述 http://blog.csdn.net/laviolette/article/details/51506953 2 创建线程函数 int pthrea ...

  6. java线程池之一:创建线程池的方法

    在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式, 1.使用ThreadPoo ...

  7. 使用Callable接口创建线程和使用线程池的方式创建线程

    1.使用Callable接口的方式实现多线程,这是JDK5.0新增的一种创建多线程的方法 package com.baozi.java2; import java.util.concurrent.Ca ...

  8. Java线程(一)——创建线程的两种方法

    Thread 和 Runnable Java程序是通过线程执行的,线程在程序中具有独立的执行路径.当多条线程执行时,它们之间的路径可以不同,例如,一条线程可能在执行switch的一个case语句,另一 ...

  9. Linux进程管理(三、 线程)

    // ---- refer glibc, pthread_create.c ----// int __pthread_create_2_0 (newthread, attr, start_routin ...

  10. Linux进程控制(三)

    1. 进程间打开文件的继承 1.1. 用fork继承打开的文件 fork以后的子进程自动继承了父进程的打开的文件,继承以后,父进程关闭打开的文件不会对子进程造成影响. 示例: #include < ...

随机推荐

  1. 搭建Android 5.0开发环境

    1.Android SDK的安装 下载地址:http://developer.android.com/index.html 访问网站的话请自备梯子 选择:adt-bundle-windows-x86_ ...

  2. Java从零开始学四十五(Socket编程基础)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  3. IT技术很好的视频网址

    1.华为工程师 带你实战C++ 2.vimoe,国外的,需要FQ哦.https://vimeo.com/85831438

  4. 通过正则获取URL中的参数

    闲着无聊用正则做了一个获取URL参数的小算法^_^ function getParam(name) { var objs = window.location.search.match("(\ ...

  5. 查看mysql主从配置的状态及修正 slave不启动问题

    1.查看master的状态 mysql> show master status;  //Position不应该为0 mysql> show processlist;  //state状态应 ...

  6. Android开发之 Android应用程序详细解析

    我们继续的沿用上一篇所建立的应用. Android应用程序可以分为:应用程序源代码(.java),应用程序描述文件(.xml),各种资源. 可以这么理解: 安卓应用程序,通过java代码来实现其业务逻 ...

  7. 版本控制工具VSS使用介绍

    什么是版本控制? 1.怎样对研发项目进行整体管理 2.项目开发小组的成员之间如何以一种有效的机制进行协调 3.如何进行对小组成员各自承担的子项目的统一管理 4.如何对研发小组各成员所作的修改进行统一汇 ...

  8. Plus One

    Plus One https://leetcode.com/problems/plus-one/ Given a non-negative number represented as an array ...

  9. runc的detach, console, tty等相关问题

    runc 端解析: 1. runc/utils_linux.go func (r *runner) run(config *specs.Process) (int , error) 在该函数中第一次对 ...

  10. selenium如何识别验证码

    一:前面的文章写了如何右键另存为图片,把验证码存为图片后,接下来就是要做,怎么把图片上的内容获取到,借住tesseract工具 1.下载tesseract:http://sourceforge.net ...