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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。