Java多线程指的是什么意思

  介绍

这篇文章给大家分享的是有关Java多线程指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的。每用Java命令启动一个Java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程,就是它自己。在这个JVM环境中,所有程序代码的运行都是以线程来运行。

一般常见的Java应用程序都是单线程的。比如,用Java命令运行一个最简单的HelloWorld的Java应用程序时,就启动了一个JVM进   程、JVM找到程序程序的入口点主要(),然后运行主要()方法,这样就产生了一个线程,这个线程称之为主线程。当主方法结束后,主线程运行完成.JVM进程也随即退出。

对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同的内存块,因此进程之间的通信相对困难。

推荐课程:Java教程

<强>进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。

<强>线程是指进程中的一个执行流程,一个进程可以运行多个线程。比如Java。exe进程可以运行很多线程。线程总是输入某个进程,进程中的多个线程共享进程的内存。

<强>多线程强指的是这个程序(一个进程)运行时产生了不止一个线程

<强>实例

线程1:接下来使用实现可实现多线程的方法:。

公共类TestRunnable实现Runnable {      私人int时间=1;   私人附近年代;   私人字符串id=?01”;   公共TestRunnable(附近){   这一点。=年代;   }   公共空间凝固时间(int) {   这一点。时间=时间;   }      @Override   公共空间run () {   尝试{   System.out.println(“我会sleep" +时间);   thread . sleep ();   }捕捉(InterruptedException e) {   e.printStackTrace ();   }      同步(s) {   s.notify ();   002年是System.out.println(“我唤醒了!“);   System.out.println(“我存入了id" + id);   s.setSource (id);   }   }      }

线程2:接下来使用继承线实现多线程的方法:。

公共类TestThread扩展线程{   私人int时间=1;   私人附近s=零;   字符串id=?02”;      公共空间凝固时间(int) {   这一点。时间=时间;   }      公共TestThread(附近){   这一点。=年代;   }      @Override   公共空间run () {   尝试{   System.out.println(“我会sleep" +时间);   睡眠(时间);   }捕捉(InterruptedException e) {//TODO自动生成的catch块   e.printStackTrace ();   }      同步(s) {   尝试{   System.out.println(“我“+身份证+“要进行等待了“);   s.wait ();   }捕捉(InterruptedException e) {//TODO自动生成的catch块   e.printStackTrace ();   }   System.out.println(“我被唤醒了“);   System.out.println(“我存入了id" + id);   s.setSource (id);   }   }      }

将线程进行同步的类,有得到,设置方法。

公共类附近{   私人List列表=new ArrayList ();   公共同步空白getSource () {   for (int i=0; i< list.size();我+ +){   System.out.println (list.get (i));   }   }   公共同步空白setSource (String id) {   list.add (id);   }   }

测试类,将多线程结果打印到控制台中。

公共空白测试(){   附近s=新附近();   TestThread tt=new TestThread(年代);   TestRunnable tr=new TestRunnable(年代);   线程t=新线程(tr);   System.out.println(“调用线程1“);   tt.start ();   System.out.println(“调用线程2“);   t.start ();   }

感谢各位的阅读!关于Java多线程指的是什么意思就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

Java多线程指的是什么意思