你们好,乐字节小乐有来咯,上次说完了Java网络编程探究|乐字节,此次咱们来看看线程相关的吧。java
Java线程主要讲述的内容有:编程
多线程,说白了就是多条执行路径,原来是一条路径,就主路径(main),如今是多条路径。就至关于高速路,原来是一条路,由于车多了,为提升使用效率,充分使用这条道路,中间加了个栅栏, 变成了多条车道。服务器
注意: 全部的车共享这条套路。网络
原来的执行程序为一条路径,如今加入多线程则存在多条执行路径。多线程
方法间的调用为一条路径,如:并发
public class OneRoute {
public static void main(String[] args) {
System.out.print("只有");
int result =a();
System.out.print("-->"+result);
}
public static int a(){
System.out.print("main");
return b()*100;
}
public static int b(){
System.out.print("一条路径"); return 1;
}
}spa
开辟新的线程,为两条执行路径。操作系统
public class ThreadRoute {
public static void main(String[] args) {
System.out.print("多条路径");
new Route().start();
System.out.print("main-->");
} }
class Route extends Thread{
public void run() {
a();
}
public int a(){
System.out.print("thread");
return b()*100;
}
public int b(){
System.out.print("一条路径");
return 1;
}
}线程
程序是指令的集合,代码的集合;而进程是动态的概念,当程序在执行时,系统分配进设计
程;多线程是在同一进程下,充分利用资源 ,多条执行路径,共享资源 (cpu data code)。
注意:
不少多线程是模拟出来的,真正的多线程是指有多个 cpu,即多核,如服务器。若是是模拟出来的多线程,即一个 cpu 的状况下,在同一个时间点,cpu 只能执行一个代码, 由于切换的很快,因此就有同时执行的错觉。
资源利用率更好;程序设计在某些状况下更简单;程序响应更快
a)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其余的通常
都更复杂。在多线程访问共享数据的时候,这部分代码须要特别的注意。线程之间的交互往
往很是复杂。不正确的线程同步产 生的错误很是难以被发现,而且重现以修复。
b)上下文切换的开销 当 CPU 从执行一个线程切换到执行另一个线程的时候,它须要
先存储当前线程的本地的数据,程序 指针等,而后载入另外一个线程的本地数据,程序指针
等,最后才开始执行。这种切换称为“上下文切 换”(“context switch”)。CPU 会在一
个上下文中执行一个线程,而后切换到另一个上下文中执 行另一个线程。上下文切换
并不廉价。若是没有必要,应该减小上下文切换的发生。
线程在 java 中的地位很是重要,可是比较难以理解,庆幸的是在实际工做中,直接编
写线程的代码很少;线程在手写服务器用的不少,固然如今的服务器都是其余公司写好的,
直接拿来用便可,若是真的想把多线程学好,须要掌握不少知识,如操做系统原理、并发机
制等。 对于目前的你们来讲,线程掌握如下便可:
关于Java多线程的概念和优缺点就介绍到这,下一篇将会讲讲如何建立多线程。谢谢你们,请关注乐字节!