符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
java中实现多线程的方法有两种,1:继承Tread类;2:实现Runable接口
成都创新互联作为成都网站建设公司,专注网站建设公司、网站设计,有关成都定制网站方案、改版、费用等问题,行业涉及混凝土搅拌站等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
1、
public class MyThread extends Thread{
//重写run()方法
public void run(){
//多线程要做的事
}
public static void main(String args[]){
MyThread m1 = new MyThread();
MyThread m2 = new MyThread();
m1.start();
m2.start();
}
}
2、
public class NThread implements Runable{
//实现run()方法
public void run(){
//多线程要做的事
}
public static void main(String args[]){
NThread nt = new NThread();
new Thread(nt,"nt1_name").start();
new Thread(nt,"nt2_name").start();
}
}
在 Java 中,线程(Thread)是指程序执行的一条路径,是进程中的一个实体。Java 中的线程是轻量级的,可以同时运行多个线程,这就是多线程(Multithreading)。
多线程是指在一个程序中同时运行多个线程,每个线程都可以独立执行不同的任务。多线程的特点包括:
提高程序的并发性:多线程可以让程序同时执行多个任务,提高程序的并发性,从而提高程序的效率。
提高程序的响应性:多线程可以让程序在执行耗时操作时不会阻塞,从而提高程序的响应性,使用户能够更快地得到反馈。
充分利用 CPU 资源:多线程可以让程序充分利用 CPU 资源,提高 CPU 的利用率,从而提高程序的效率。
方便处理复杂的任务:多线程可以让程序同时处理多个复杂的任务,从而方便处理复杂的任务。
需要注意的是,多线程也会带来一些问题,例如线程安全问题、死锁问题等,因此在编写多线程程序时需要注意这些问题。
public class DoubleThread {
public static void main(String[] args) {
Thread t1 = new Thread() {
@Override
public void run() {
for (char i = 'a'; i = 'z'; i++) {
System.out.println(i);
}
}
};
Thread t2 = new Thread() {
@Override
public void run() {
for (char i = 'A'; i = 'Z'; i++) {
System.out.println(i);
}
}
};
t1.start();
t2.start();
}
}
继承Thread类来实现多线程:
当我们自定义的类继承Thread类后,该类就为一个线程类,该类为一个独立的执行单元,线程代码必须编写在run()方法中,run方法是由Thread类定义,我们自己写的线程类必须重写run方法。
run方法中定义的代码为线程代码,但run方法不能直接调用,如果直接调用并没有开启新的线程而是将run方法交给调用的线程执行
要开启新的线程需要调用Thread类的start()方法,该方法自动开启一个新的线程并自动执行run方法中的内容
请点击输入图片描述
结果:
请点击输入图片描述
*java多线程的启动顺序不一定是线程执行的顺序,各个线程之间是抢占CPU资源执行的,所有有可能出现与启动顺序不一致的情况。
CPU的调用策略:
如何使用CPU资源是由操作系统来决定的,但操作系统只能决定CPU的使用策略不能控制实际获得CPU执行权的程序。
线程执行有两种方式:
1.抢占式:
目前PC机中使用最多的一种方式,线程抢占CPU的执行权,当一个线程抢到CPU的资源后并不是一直执行到此线程执行结束,而是执行一个时间片后让出CPU资源,此时同其他线程再次抢占CPU资源获得执行权。
2.轮循式;
每个线程执行固定的时间片后让出CPU资源,以此循环执行每个线程执行相同的时间片后让出CPU资源交给下一个线程执行。