java中多线程是什么,java多线程用处

  java中多线程是什么,java多线程用处

  本文将介绍多线程及其例子。

  如何解决写爬虫IP受阻的问题?立即使用。

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

  常见的Java应用程序都是单线程的。例如,当使用java命令运行HelloWorld的最简单的Java应用程序时,就会启动一个JVM。

  程,JVM找到程序main()的入口点,然后运行main()方法,这样就产生了一个线程,叫做主线程。当main方法完成时,主线程完全运行。JVM进程也存在。

  对于一个进程中的多个线程,多个线程共享该进程的内存块。当一个新线程生成时,操作系统不会分配新的内存,而是让新线程共享原进程块的内存。因此,线程之间的通信容易且快速。因为不同的进程在不同的内存块中,所以进程间的通信相对困难。

  推荐课程:Java教程

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

  线程表示流程中的一个执行流程。一个进程可以运行多个线程。例如,java.exe进程可以运行许多线程。线程总是输入到一个进程中,进程中的多个线程共享进程的内存。

  多线程表示这个程序(一个进程)在运行时产生了多个线程。

  实例

  1.Thread:接下来使用实现Runnable的方法实现多线程:

  公共类TestRunnable实现Runnable {

  private int time=1;

  私人来源a s;

  私有字符串id=“001”;

  public TestRunnable(SourceA s){

  this.s=s

  }

  public void setTime(int time) {

  this.time=时间;

  }

  @覆盖

  公共无效运行(){

  尝试{

  System.out.println(我要睡觉时间);

  thread . sleep(time);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  已同步{

  s . notify();

  System.out.println(我醒了002!);

  System.out.println(我存了id id);

  s . set source(id);

  }

  }

  } Thread 2:接下来,通过继承Thread实现多线程的方法:

  公共类TestThread扩展线程{

  private int time=1;

  私有源s=null

  字符串id=“002”;

  public void setTime(int time) {

  this.time=时间;

  }

  公共测试线程(SourceA s){

  this.s=s

  }

  @覆盖

  公共无效运行(){

  尝试{

  System.out.println(我要睡觉时间);

  睡眠(时间);

  } catch (InterruptedException e) {

  //TODO自动生成的catch块

  e . printstacktrace();

  }

  已同步{

  尝试{

  System.out.println(我的 id 要等了);

  s . wait();

  } catch (InterruptedException e) {

  //TODO自动生成的catch块

  e . printstacktrace();

  }

  System.out.println(我被唤醒);

  System.out.println(我存了id id);

  s . set source(id);

  }

  }

  }同步线程的类,包括get和set方法。

  公共类源A {

  private ListString list=new ArrayList string();

  公共同步void getSource(){

  for(int I=0;ilist . size();i ){

  system . out . println(list . get(I));

  }

  }

  公共同步void setSource(字符串id){

  list . add(id);

  }

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

  公共无效测试(){

  SourceA s=new SourceA();

  测试线程tt=新的测试线程;

  TestRunnable tr=新的TestRunnable;

  螺纹t=新螺纹(tr);

  System.out.println(“调用线程1”);

  TT . start();

  System.out.println(“调用线程2”);

  t . start();

  }以上是什么是Java多线程的详细介绍。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: