Java多线程

本文介绍了Java中实现多线程的三种主要方法:继承Thread类、实现Runnable接口及使用ExecutorService、Callable与Future实现有返回结果的多线程。通过示例代码详细解释了如何创建和启动线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。

多线程的基本实现

 进程指运行中的程序,每个进程都会分配一个内存空间,一个进程中存在多个线程,启动一个JAVA虚拟机,就是打开个一个进程,一个进程有多个线程,当多个线程同时进行,就叫并发。

Java创建线程的两种方式为: 继承Thread类 和实现Runnable接口

Thread类

1、通过覆盖run方法实现线程要执行的程序代码

2、Start()开始执行多线程

package com.bin.duoxiancheng;

public class d1 extends Thread{ 

 public void run(){ 

  System.out.println(i);

  for(int i=0 ; i<50; i++){

     System.out.println(currentThread().getName());

  try {  

  sleep(100);

 } catch (InterruptedException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

 }}}

public static void main(String[] args){

  new d1().start();

  new d1().start();

   }}

多个线程共享一个实例的时候,代码代码如下:

package com.bin.duoxiancheng;

public class d1 extends Thread{

int i=0;

public void run(){

for(i=0 ; i<50; i++){

System.out.println(i);

System.out.println(currentThread().getName());

try {

sleep(100);

} catch (InterruptedException e) {

 // TODO Auto-generatedcatch block

e.printStackTrace();

}}}

public static void main(String[] args){

new d1().start();

new d1().start();

}}

结果如下所示:

0 

Thread-1  

0
Thread-0

1

Thread-1 

1  

实际2个线程在操纵不同的变量a,在执行run方法时候,线程把a都当做自己的变量在执行。

Runnable接口实现多线程

当一个继承自Thread时,就不能再继承其他类,使用Runnable接口解决了此问题,在新建一个Thread类中,在构造方法中初始化

Thread(Runnable target)

分配新的 Thread 对象。

 Thread(Runnable target,String name)

 分配新的 Thread 对象。

package com.bin.duoxiancheng;

 public class D2 implements Runnable{

 int i=0;

public void run(){

  for(i=0 ; i<50; i++){

    System.out.println(i);

System.out.println(Thread.currentThread().getName());

try {

Thread.sleep(100);

 } catch (InterruptedException e) {

// TODO Auto-generatedcatch block

 e.printStackTrace();}}}

public static void main(String[] args){

 D2 d=new D2(); 

Thread t=new Thread(d); 

t.start();}}

  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值