前言
最近特别忙,博客就此荒芜,博主秉着哪里不熟悉就开始学习哪里的精神一直在分享着,有着扎实的基础才能写出健壮的代码,有可能实现的逻辑有多种,但是心中必须有要有底哪个更适合,用着更好,否则则说明我们对这方面还比较薄弱,这个时候就得好好补补了,这样才能加快提升自身能力的步伐,接下来的时间会着重讲解线程方面的知识。强势分割线。
话题乱入,一到跳槽季节想必我们很多人就开始刷面试题,这种情况下大部分都能解决问题,但是这样的结果则是导致有可能企业招到并非合适的人,当然作为面试官的那些人们也懒得再去自己出一份面试题,问来问去就那些技术【排除有些装逼的面试官】,如果我作为面试官我会在网上挑出50%的面试题,其他面试则是现场问答,看看面试者的实际能力和平时的积累是怎样的。好了,现在随便出三道面试题,作为面试者的你,看你如何作答:
(1)利用Thread类创建线程有几种方式。
(2)如果你已工作3年,我要问你创建线程的至少3种方式,如果你已工作6年,我会问你创建线程的7种方式。
(3)线程的发展历程是怎样的,每一个历程分别是为了解决什么问题。
如果你需要沉思一会或者回答不出来,那你就有必要好好补补线程这方面的知识了!如果答案已有请对照文章最底部参考答案是否大概一致。
线程
线程确实很强大,强大到对于我而言只知道这个概念,由于自身的能力无法从底层去追究,只能通过网上资料或书籍来强势入脑,但是利用线程不当则导致各种各样问题的出现,若不作为开发者我们只能重启电脑或者打开任务管理器去直接关闭该死的那所属的进程,作为开发者的我们知道线程有着内存占用和运行时的性能开销即创建和销毁都是需要开销。每个线程都有以下因素
(1)线程内核对象。
(2)线程环境块。
(3)用户模式栈。
(4)内核模式栈。
(5)DLL线程连接和线程分离通知。
上述摘抄来自CLR Via C#,请原谅我懒得去看这段文字也不想看,没多大意思【因为我不懂】,比较底层的东西我就不去过多探讨了。好了,开始进入我们最原始的线程创建讲解。