java实现多线程的三种方法,java多线程
如何解决写爬虫IP受阻的问题?立即使用。
需求:我们想要实现多线程程序。
(推荐课程:java课程)
如何实现:
因为线程依赖于进程而存在,所以我们应该首先创建一个进程。
进程是由系统创建的,所以我们应该调用系统函数来创建进程。
但是Java不能直接调用系统函数,所以我们不能直接实现多线程程序。
而Java可以直接调用C/C编写的程序来实现多线程程序。
因为C/C调用系统函数创建一个进程,然后Java调用这样的东西。
然后提供一些类给我们使用。我们可以实现多线程。
那么Java提供的类有哪些呢?
线
看API,我们知道多线程有两种实现方式。
方法1:继承线程类
步骤:
答:自定义类MyThread继承了Thread类
B:重写B:MyThread类中的run();
为什么是run()方法?
并非一个类的所有代码都需要由一个线程来执行。
这时为了区分哪些代码可以被多线程执行,Java在Thread类中提供了run()方法。
用于包含线程执行的代码。
c:创建对象
开始线程
示例:
包cn.itcast _ 01
类如何实现多线程及其多线程模式1 {
公共静态void main(String[] args) {
//创建一个线程对象
MyThread my=new MyThread();
//启动线程
my . run();
my . run();
//调用run();为什么方法是单线程的?
//因为run();方法的直接调用实际上相当于普通的方法调用,所以你看到的是单线程的效果。
//要看多线程的效果,还得说另一个方法:start()
//面试问题run()和start()的区别
//run():只封装线程执行的代码,直接调用还是常用的方法。
//start():先启动线程,然后JVM会调用线程的run()方法。
MyThread my=new MyThread();
my . start();
my . start();//IllegalThreadStateException:非法的线程状态异常
//为什么?
//因为这相当于我的线程调用了两次。而不是两个线程的开始。
//创建两个线程
MyThread my1=new MyThread();
MyThread my2=new MyThread();
my1 . start();
my2 . start();
}
}相关推荐:java简介以上是java如何实现多线程的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。