当年在某公司实习的时候, 涉及到多线程的概念(实际上就是主线程和网络线程), 小师傅问我, 懂不懂线程的概念, 我说不懂, 也确实不懂。
后来要找工作了, 再不懂就不好了, 所以跟大家一起看书, 书上说: 进程是正在运行的程序, 一个进程可以多多少线程。 擦, 无用的废话。 反正我一直没有理解线程是真么, 也没有搞清楚什么是线程, 只是看书上说, 线程可以提高程序效率。 呜呼哀哉。
后来, 我又去网上找各种资料, 看看线程是什么, 各种古怪的比喻和例子, 我有点想骂人。
再后来, 我想看线程长什么样, 不就是一个程序吗? 哪来运行一下, 看看结果, 于是, 就入门线程了:
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void* threadFunc(void* p)
{
printf("threadFunc is %u\n", pthread_self());
int i = 0;
while (1)
{
printf("in threadFunc, index %d\n", i++);
sleep(1);
}
return NULL;
}
int main ()
{
printf("main thread id is %u\n", pthread_self());
pthread_t id;
pthread_create (&id, NULL, threadFunc, NULL);
printf("son thread id is %u\n", id);
int i = 0;
while (1)
{
printf("in main, index %d\n", i++);
sleep(1);
}
return 0;
}
后来, 深入学习了一些线程方面的东西, 发现这玩意儿真是简单, 不值得一说。
所以, 我就不说了。