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

回到顶部