Linux中多线程的达成
发布时间:2021-11-20 17:29:10 所属栏目:教程 来源:互联网
导读:所谓的多线程就是多个函数同时执行。一般将线程表述为一个api加一个函数。线程函数有特定的格式要求,以便系统自动调用。 Windows进程包含多个线程,进程是分配资源(包括CPU)的最小单位,而线程是调度的最小单位。 Linux中的进程和线程关系应该和Windows一
所谓的多线程就是多个函数同时执行。一般将线程表述为一个api加一个函数。线程函数有特定的格式要求,以便系统自动调用。 Windows进程包含多个线程,进程是分配资源(包括CPU)的最小单位,而线程是调度的最小单位。 Linux中的进程和线程关系应该和Windows一样,而且在Linux中创建多线程程序和Windows一样简单。 下面是一个多线程实例,程序流程是这样的: 进程启动,创建一个线程 线程和主进程都每个一段时间输出一些信息,二者并发执行 下面的代码编译于Ubuntu 10.0.4: thread.cpp源代码: #include <stdio.h> // printf #include <pthread.h> // pthread_create #include <stdlib.h> // exit #include <unistd.h> // usleep void * thread( void * par){// 线程函数 int i; for( i = 0; i < 30; i ++){ printf( "This is a pthread.n"); usleep( 1000); } return 0; } int main(void){ pthread_t id; int i,ret; ret = pthread_create( &id, NULL, thread, NULL);// 创建一个线程 if( ret != 0){ printf( "Create pthread error!n"); exit( 1); } for( i = 0; i < 30; i ++){// 和创建的线程并发执行 printf( "This is the main process.n"); usleep( 330); } pthread_join( id, NULL); // 等待tid为id的线程退出执行 return( 0); } makefile内容: thread: thread.cpp g++ thread.cpp -lpthread -o thread 程序执行截图: Linux中多线程的实现 笔记: 编译时必须链入 pthread 这个库 usleep参数是毫秒级的,sleep参数是秒级的 (编辑:江门站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |