先上一段代码hello.c
void thread01(void){
int i;
for(i=0;i<3;i++)
{
printf("this is a pthread01.\n");
sleep(1);
}
}
void thread02(void){
int i;
for(i=0;i<3;i++)
{
printf("this is a pthread02.\n");
sleep(1);
}
}
void main(){
pthread_t t1,t2;//定义两个线程
int i,ret;
ret=pthread_create(&t1,NULL,(void*)thread01,NULL);//创建线程1
ret=pthread_create(&t2,NULL,(void*)thread02,NULL);//创建线程1
if (ret!=0){
printf("Fail to create pthread");
}
pthread_join(t1,NULL);//线程t1加入main线程,main让出cpu给t1
pthread_join(t2,NULL);
printf ("this is the main process.\n");
定义了两个线程,异步执行其中的方法,java中也有类似方法
public static void main(String[] args) throws InterruptedException {
Thread t1=new Thread(()-> System.out.println("thread1"));//lambda定义两个线程
Thread t2=new Thread(()-> System.out.println("thread2"));
t1.start();
t2.start();
t1.join();//main线程让步cpu给t1线程
t2.join();
System.err.println("main");
}