一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Java代码一样,也正是因为这样,所以创建线程时才需要覆写run()方法,要不来虚拟机是不知道你给它的任务不是么?
所不同的是,JVM提供了对这个类的一些调度方法和管制,所以会有Thread.start()开始执行run方法、Thread.yield()释放处理器同其他线程共同竞争处理器资源等方法;
多线程编程,在于如何安全高效地组织你的任务,让它们能协同地完成任务。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Java代码一样,也正是因为这样,所以创建线程时才需要覆写run()方法,要不来虚拟机是不知道你给它的任务不是么?
所不同的是,JVM提供了对这个类的一些调度方法和管制,所以会有Thread.start()开始执行run方法、Thread.yield()释放处理器同其他线程共同竞争处理器资源等方法;
多线程编程,在于如何安全高效地组织你的任务,让它们能协同地完成任务。