67194:67194 > HELLO JAVA
[导读]java多线程除了Thread类,还可以使用Runnable接口:实现Runnable的run函数,然后new Thread类传入Runnable接口类,调用start启动 线程sleep函数可以使

java多线程除了Thread类,还可以使用Runnable接口:实现Runnable的run函数,然后new Thread类传入Runnable接口类,调用start启动 线程sleep函数可以使用静态函数Thread.currentThread().sleep。 需要注意的是 只有run内部调用的函数才是在新开辟的线程中。
package com.test.java;

import javafx.scene.Parent;

public class Thread1 implements Runnable {
    private Test1 parent =null;
      public Thread1(Test1 parent) {
        this.parent = parent;
        // TODO 自动生成的构造函数存根
    }
    @Override
    public void run() {
        // TODO 自动生成的方法存根
        while (true) {
             try {
                Thread.currentThread().sleep(1000);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
             parent.data++;
             System.out.println(parent.data);
        }

    }

}
package com.test.java;

public class Test1 { 
public  int data = 0;
    public Test1()
    {  
        new Thread(new Thread1(this)).start();
    }

    public static void main(String[] args) {
             new Test1();
  }

}
为何需要Runnable类,有时候一个类封装完毕,后期需要加入线程可能不是很容易,实现Runnable接口会在这方面方便很多
package com.test.java;

public class Test1 implements Runnable{ 
public  int data = 0;
    public Test1()
    { 
        new Thread(this).start();
    }

    public static void main(String[] args) {
            Test1 test1 = new Test1();
  }

    @Override
    public void run() {
        // TODO 自动生成的方法存根
        while (true) {
            data++;
            System.out.println(data);
            try {
                Thread.currentThread().sleep(100);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }


    } 

}
如果需要线程操作,需要保存Thread指针
package com.test.java;

public class Test1 implements Runnable{ 
public  int data = 0;
public Thread mThread;//保存的线程变量 用来操作此线程
    public Test1()
    { 

        new OldThread().start();
        mThread=new Thread(this);
        mThread.start();

    }

    public static void main(String[] args) {
             new Test1();
  }

    @Override
    public void run() {
        // TODO 自动生成的方法存根
        while (true) {
            data++;
            System.out.println(data);
            try {
                Thread.currentThread().sleep(100);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
                break;
            }
        }


    } 
    //用来关闭线程当计数到10
    class  OldThread extends Thread{

        @Override
        public void run() {
            // TODO 自动生成的方法存根
             while (true) {
                 if (data>10) {
                    mThread.interrupt();
                }
                 try {
                    sleep(10);
                } catch (InterruptedException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }

            }
        }

    }

}
换一批

延伸阅读

[科技喵] 英特尔11代桌面酷睿现身:8核16线程 Gen12核显

英特尔11代桌面酷睿现身:8核16线程 Gen12核显

6月28日,根据爆料消息,英特尔 11 代酷睿桌面处理器已经出现在了 Geekbench 跑分中。 1 如图所示,这款 Rocket Lake-S 处理器为 8 核 16 线程,3.2-4.3GHz,512KB 二级缓存(每核),16MB...

关键字: 核显 线程 英特尔11代

[嵌入式资讯] 从 Android 到 Java

从 Android 到 Java

Alimei概况:Android和Java开发在技术堆栈上有何区别? 思考和解决问题时会发生什么? 本文分享了从Android开发到Java应用程序开发的Ali技术专家的经验,分析了两者之间的差异以及一些关于动力学,兼容性,内存管理和...

关键字: Android api java

[科技喵] Java 用户福利,BellSoft 与 VMware 合作改进 OpenJDK

Java 用户福利,BellSoft 与 VMware 合作改进 OpenJDK

在过去的几年中,OpenJDK 的使用率显着增加,尤其在甲骨文于 2019 年决定更改其 Java 许可模式,从提供免费的 Java 更新转变为要求付费订阅以后,这种情况尤为明显。Snyk 于 2020 年进行的一项调查显示,只有 34%...

关键字: vmware java openjdk

[科技前线] 谷歌 Cloud Functions 添加对 Java 11 支撑

谷歌 Cloud Functions 添加对 Java 11 支撑

GOOGLE宣布在其无服务器计算平台 Cloud Functions 上支撑 Java 11。图片来源:SDTimesGuillaume Laforge 在帖子中指出,“通过适用于 谷歌 Cloud Functions 的新 Java 11...

关键字: GOOGLE 11 java

[科技喵] 那些想要替代 C 与 Java 们的后浪,如今混得怎么样?

那些想要替代 C 与 Java 们的后浪,如今混得怎么样?

前段时间,B 站推出的青年节演讲视频在朋友圈刷屏,看着“后浪”们丰富多彩的生活,同事们纷纷自嘲自己就是被拍在沙滩上的那一个,被生活疯狂蹂躏。然而在编程语言界,“后浪”们掀起的波澜则十分有限。与近年来陆续涌现的新兴编程语言相比,那些出道即巅峰...

关键字: C语言 java 编程语言

HELLO JAVA

541 篇文章

关注

发布文章

技术子站

更多

论坛活动

  • 加入Vicor,让机器人供电系统设计更有“料”
    加入Vicor,让机器人供电系统设计更有“料”
  • ADI视频课堂精品上新-观看有礼
  • 【20周年庆】21ic下载站VIP五折起,技术资料免积分下载!
  • 贸泽电子设计“新”头好
更多

资料下载

  • ST-Link原理图和固件
  • Linux下C语言编程入门教程
  • Multisim2001电路设计及仿真教材
  • Linux内核源码分析--zImage出生实录(Linux-3.0ARMv7)
  • 新概念模拟电路全集
  • 张飞电子全套视频下载地址及提取码
  • AD封装库-国标版
  • stm32温湿度-超声波-LCD结合项目
  • DSP教程---ADC和DAC
  • 分布式BFD系统中驱动模块的设计与实现
关闭
XML 地图 | Sitemap 地图