这是面试windows开发工程师时碰到的问题,匪夷所思啊,有些面试官是不是脑残,总喜欢问一些没头脑的问题,坐在对立面,有时候我们心中十万只草泥马奔腾而过。因为windows开发工程师特别喜欢问MFC方面的东西,所以如果想应聘windows客户端的同学注意喽,最好能够扎实一下MFC方面的东西,毕竟如果在客户端方面,MFC虽然别名“没饭吃”,但是如果不会说不过去。
当时面试官问我创建线程的三种方式,也就是接口。其实我并不知道在MFC里面创建线程的方式,我只回答了 _beginthread()和CreateThread() ,后来面试回来查了一下资料才知道还有一个AfxBeginThread()。MFC里的这个创建线程方式也能够对线程进行等待,唤醒操作。
其实如果你平时的项目偏向于高并发的线程的话,会非常熟悉这个东西。但是windows开发的人大都数都偏向于了界面UI客户端,很少会涉及到一些高并发式的业务,作为一个windows开发人员,可能会要求你熟悉多线程,多进程,这些通信方式同步异步等操作。一个线程的创建,唤醒与等待,线程状态,结束线程等,这些常规状态,如果你平时工作接触得不多,那么最好是强行背下来,这个有益无害。
面试官还问了如果高并发的创建线程,当时我答的是线程池。面试面的是感觉和心情,如果真心答不上来就明说,把自己放得宽坦些。