当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]点击蓝字关注我们本文探讨PODIX线程相关内容。线程的概念什么是多线程,提出这个问题的时候,我还是很老实的拿出操作系统的书,按着上面的话敲下“为了减少进程切换和创建开销,提高执行效率和节省资源,我们引入了线程的概念,与进程相比较,线程是CPU调度的一个基本单位。”当Linux最初...



本文探讨PODIX线程相关内容。


线程的概念

什么是多线程,提出这个问题的时候,我还是很老实的拿出操作系统的书,按着上面的话敲下“为了减少进程切换和创建开销,提高执行效率和节省资源,我们引入了线程的概念,与进程相比较,线程是CPU调度的一个基本单位。”


当 Linux 最初开发时,在内核中并不能真正支持线程。那为什么要使用多线程?


使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。


那么线程是干什么的呢?简要概括下线程的职责:线程是程序中完成一个独立任务的完整执行序列。


线程的管理

创建线程

#include
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg)
;
- thread:线程id,唯一标识


- attr:线程属性,参数可选


- start_routine:线程执行函数


- arg:传递给线程的参数


Demo1:创建一个线程


#include
#include

void *workThreadEntry(void *args)
{
char*str = (char*)args;
printf("threadId:%lu,argv:%s\n",pthread_self(),str);
}
int main(int argc,char *agrv[])
{
pthread_t thread_id;
char*str = "hello world";
pthread_create(
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。

嵌入式大杂烩

461 篇文章

关注

发布文章

编辑精选

技术子站

关闭