图灵学院 java架构师学习路线
最近有读者在学习Java并发编程,希望我能够写一篇关于Java并发编程的文章来供他参考,就这样我开启了我的寻找Java并发编程之路,下面是关于我对Java并发编程资料的收集。
一.并发编程的五种状态:
1.失去占用资源会使线程变为阻塞状态,根据失去资源的方式或原因阻塞状态分为3种。
同步阻塞:线程获取synchronized同步锁失败。
其它阻塞:sleep()、join()、IO请求,都会使线程进入阻塞状态。
等待阻塞:线程执行wait()方法。
2.死亡状态
任务执行完成或者终止条件发生,线程进入终止状态。
3.运行状态
就绪状态的线程获取到CPU资源就可以执行run(),线程变为运行状态。
4.就绪状态
线程对象调用start()之后线程进入就绪状态,在就绪队列中等待JVM的线程调度器调度。
5.新建状态
使用new关键字建立一个线程对象后,程序start()这个线程之前都是新建状态。
阻塞状态
二.创建并发编程的两种方式:
1.继承Thread类
1.1.实现步骤:
1.创建继承Thread的子类,并重写run()方法。
2.创建子类的实例对象。
3.子类实例对象调用start()方法启动线程。
1.2.代码示例:
实现Runnable接口
2.1.实现步骤:
1.创建Runnable的实现类,并实现run()方法。
2.实现Callable接口
2.2.实现步骤:
1.创建Callable的实现类,并实现call()方法,然后创建这个实现类的实例。这里我们不写实现类,而是采用更方便的Lambda表达式。
2.使用FutureTask类包装Callable对象。
3.使用FutureTask对象作为Thread对象的target创建Thread线程对象并调用start()方法启动线程。
4.调用FutureTask对象的get()方法获得子线程执行结束后的返回结果。
2.3.代码示例:
Java并发编程之路本就是索然无味的,如果我们还不从编程中找点乐趣,面对枯燥的代码的时候只能是“它认识我,我不认识它”这种状况,我们要从学习中体会乐趣,这样才能增加我们的探知欲。
我们生活中不乏那种三分热度的人,我之前也是对什么事情都喜欢尝试一下,结局自然是一无所获了。对新鲜事物拥有好奇心本没错,但要是做事情要是没个耐性的话终究也只能是一无所有了。
总结:所以最好我们在开始做一个决定之前三思而后行,不然这样的话是对你自己的不负责也是对你做的事情的不负责,要知道你做的那个决定可能会改变你现在的处境,而你走到一半就不走了,这样的话你让别人怎么看待你这个人?
尽管Java架构师学习路线已经分享给大家,但有多少人能认真的去践行,这个就难说了。互联网寒冬已经到来,作为程序员,更应在此时提高自己,有着更高远的追求。
篇幅有限,如果需要更详细的java架构师学习路线资料可加博主qq:1993712276,或者去图灵官网查看