java并发编程
1、高并发编程实战
线程和进程
一个进程可以有很多线程,每条线程并行执行不同的任务
创建读方法
private static void readFromDb() {System.out.println("开始读取数据库");
try {
Thread.sleep(2000);
System.out.println("读取数据进行中");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("读取数据结束");
}
创建写方法
private static void writeToDb() {try {
System.out.println("开始写入数据库");
Thread.sleep(3000);
System.out.println("写入数据进行中");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("写入数据结束");
}
创建main线程去执行
public static void main(String[] args) {readFromDb();
writeToDb();
}
运行结果:
开始读取数据库 读取数据进行中 读取数据结束 开始写入数据库 写入数据进行中 写入数据结束
总结:会按照顺序执行,不会并行执行。导致程序比较慢。
C:UsersJack hu>jps 44480 TryConcurrency 51060 57240 Launcher 8824 Jps 41180 RemoteMavenServer
C:UsersJack hu>jconsole 44480
线程生命周期
翻译:
导致此线程开始执行;Java虚拟机调用此线程的run方法。结果是两个线程同时运行:当前线程(从对start方法的调用返回)和另一个线程(执行其run方法)。多次启动线程是不合法的。特别是,线程一旦完成执行就不能重新启动。非法线程状态异常。如果线程已经启动。
总结:
1.Java应用 程序的main函数是一个线程,是被JVM启动的时候调用,线程的名学叫main
2.实现一个线程,必须创建Thread实例,override run方法, 并且调用start方法
3.在JVM启动后,实际.上有多个线程,但是至少有一个非守护线程
4.当你调用一一个线程start方法的时候,此时至少有两个线程,一个是调用你的线程,还有
5.线程的生命周期分为new, runnable, running, block, terminated
以上是 java并发编程 的全部内容, 来源链接: utcz.com/z/512354.html