linux下的C语言开发(多线程编程).pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:5 大小:332KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

linux下的C语言开发(多线程编程).pdf

linux下的C语言开发(多线程编程).pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处linux下的C语言开发(多线程编程)多线程和多进程还是有很多区别的。其中之一就是,多进程是linux内核本身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样的。[cpp]viewplaincopy1.#include<stdio.h>2.#include<pthread.h>3.#include<unistd.h>4.#include<stdlib.h>5.6.voidfunc_1(void*args)7.{8.while(1){9.sleep(1);10.printf("thisisfunc_1!\n");11.}12.}13.14.voidfunc_2(void*args)15.{16.while(1){17.sleep(2);18.printf("thisisfunc_2!\n");19.}20.}21.本文长春白癜风专科医院http://tf463.com/收集,转载请注明出处本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处22.intmain()23.{24.pthread_tpid1,pid2;25.26.if(pthread_create(&pid1,NULL,func_1,NULL))27.{28.return-1;29.}30.31.if(pthread_create(&pid2,NULL,func_2,NULL))32.{33.return-1;34.}35.36.while(1){37.sleep(3);38.}39.40.return0;41.}和我们以前编写的程序有所不同,多线程代码需要这样编译,输入gccthread.c-othread-lpthread,编译之后你就可以看到thread可执行文件,输入./thread即可。[cpp]viewplaincopy1.[test@localhostDesktop]$./thread2.thisisfunc_1!3.thisisfunc_2!4.thisisfunc_1!本文长春白癜风专科医院http://tf463.com/收集,转载请注明出处本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处5.thisisfunc_1!6.thisisfunc_2!7.thisisfunc_1!8.thisisfunc_1!9.thisisfunc_2!10.thisisfunc_1!多线程和多进程还是有很多区别的。其中之一就是,多进程是linux内核本身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样的。[cpp]viewplaincopy1.#include<stdio.h>2.#include<pthread.h>3.#include<unistd.h>4.#include<stdlib.h>5.6.voidfunc_1(void*args)7.{8.while(1){9.sleep(1);10.printf("thisisfunc_1!\n");11.}12.}13.14.voidfunc_2(void*args)15.{16.while(1){本文长春白癜风专科医院http://tf463.com/收集,转载请注明出处本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处17.sleep(2);18.printf("thisisfunc_2!\n");19.}20.}21.22.intmain()23.{24.pthread_tpid1,pid2;25.26.if(pthread_create(&pid1,NULL,func_1,NULL))27.{28.return-1;29.}30.31.if(pthread_create(&pid2,NULL,func_2,NULL))32.{33.return-1;34.}35.36.while(1){37.sleep(3);38.}39.40.return0;41.}和