转眼间已毕业三年,在武汉找工作还是有点艰辛的,所以也导致自己积累了一些面试经验,好了,废话少说,我们进入正题,如有问题,希望大家指出。
1.多线程的同步。
通常面试中常会涉及到多线程,那么什么是多线程的同步和异步了?网上很多blog写的很书面,个人觉得很虚。
线程的同步:相当于多个线程去同时访问同一块资源,但是每次只能有一个线程去访问,也就是会阻塞。解决线程同步的方法有(这也是常问的):互斥锁,信号处理,条件变量。
下面我给大家看个简单的同步的例子:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
void *test(void *b)
{
b = (char*)b;
printf("b = %s\n", b);
pthread_exit(NULL);
}
int main()
{
int i = 0;
pthread_t tid;
while(i < 4)
{
void *a = "test";
pthread_create(&tid, NULL, test, a);
i++;
}
sleep(2);
ret