作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程。那么如何提供给 Java 我们要线程执行的代码呢?让我们来看一看 Thread 类。Thread 类最重要的方法是 run(),它为Thread 类的方法 start() 所调用,提供我们的线程所要执行的代码。为了指定我们自己的代码,只需要覆盖它!

方法一:继承 Thread 类,重写方法 run(),我们在创建Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面举一个简单的例子,如下:public class TwoThread extends Thread {

public void run() {

for ( int i = 0; i

System.out.println("New thread");

}

}

public static void main(String[] args) {

TwoThread tt = new TwoThread();

tt.start();

for ( int i = 0; i

System.out.println("Main thread");

}

}

}

这种方法简单明了,符合大家的习惯,但是,它也有一个很大的缺点,那就是如果我们的类已经从一个类继承,则无法再继承 Thread 类。

方法二:实现 Runnable 接口

Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread 类的实例,这一点通过 Thread 类的构造函数public Thread(Runnable target);来实现。下面是一个例子:public class MyThread implements Runnable {

int count=1, number;

public MyThread(int num) {

number = num;

System.out.println("创建线程 " + number);

}

public void run() {//实现了接口的run()方法

while(true) {

System.out.println("线程 " + number + ":计数 " + count);

if(++count== 6) return;

}

}

public static void main(String args[]) {

for(int i = 0; i

new Thread(new MyThread(i+1)).start();

}

}

Runnable 接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封装使用。

java线程代码实现_Java 多线程代码实现讲解相关推荐

  1. java 线程面试题_JAVA多线程面试题(一)

    1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...

  2. java线程怎么用_Java多线程基本使用

    一.概念 1.进程 1.1进程:是一个正在进行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 1.2线程:就是进程中一个独立的控制单元,线程在控制着进程的执行,一 ...

  3. java线程饥饿原理_java 多线程饥饿现象的问题解决方法

    java 多线程饥饿现象的问题解决方法 当有线程正在读的时候,不允许写 线程写,但是允许其他的读线程进行读.有写线程正在写的时候,其他的线程不应该读写.为了防止写线程出现饥饿现象,当线程正在读,如果写 ...

  4. java线程池售票_Java多线程卖票例子

    以卖票的例子来介绍多线程和资源共享. 卖票是包含一系列动作的过程,有各种操作,例如查询票.收钱.数钱.出票等,其中有一个操作是每次卖掉一张,就将总的票数减去1.有10张票,如果一个人卖票,先做查票.收 ...

  5. java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理

    1 学习多线程知识的根本目标 多线程知识的根本目标是:设计稳健的并发程序. 当然,本文无法回答这个实践性很强的问题(这与具体的业务相关,涉及到具体的策略),本文主要阐述相关知识之间的关系,希望初学者不 ...

  6. java线程池 锁_java多线程——锁

    这是多线程系列第四篇,其他请关注以下: 如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍. ...

  7. java线程下载文件_Java多线程下载文件实例详解

    本文实例为大家分享了Java多线程下载文件的具体代码,供大家参考,具体内容如下 import java.io.File; import java.io.InputStream; import java ...

  8. java 线程锁概念_Java多线程——锁概念与锁优化

    为了性能与使用的场景,Java实现锁的方式有非常多.而关于锁主要的实现包含synchronized关键字.AQS框架下的锁,其中的实现都离不开以下的策略. 悲观锁与乐观锁 乐观锁.乐观的想法,认为并发 ...

  9. java线程异步传值_Java 多线程传值的四种方法

    Java 多线程传值的四种方法 作者: sunjs 更新时间:2020-09-11 15:20:16 原文链接 其实大家都知道多线程传值有三种方式: 1:通过构造方法传递数据 2:通过变量和方法传递数 ...

最新文章

  1. 等待队列——休眠与唤醒
  2. 【学习笔记】 Python - Pandas
  3. java计算两个文本框的值,java 文本框自动获取另外两个文本框的值的乘积
  4. 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN
  5. 【网络流】【Dinic】【Next Array】Dinic模板
  6. 【CSS+HTML】关于字体的说明
  7. iOS 文字样式处理总结(字体、前背景色、斜体、加粗、对齐、行间距、段间距、动态获取字符串label宽高等)...
  8. aspell_如何使用Aspell在Linux命令行上检查拼写
  9. C#_TextBox_禁止粘贴
  10. java终结方法_java编程思想之并发(终结任务)
  11. Windows10永久关闭自动更新,禁止windows10自动更新方法!
  12. java整人的代码_「vbs代码」vbs表白代码+整人代码,抖音vbscript表白代码 - seo实验室...
  13. regeneratorRuntime is not defined
  14. 交会定点(前方交会、测边交会、后方交会)程序C++代码
  15. 数据库实体之间的关联关系:一对一、一对多、多对多
  16. PON光模块相关知识
  17. 逻辑对计算机,对计算机模拟中的逻辑、方法论的几点认识
  18. 惠普打印机m226dn教程_WiFi当道 手把手教你完成手机无线打印
  19. MySQL 5.7 安装教程(全步骤、保姆级教程)
  20. csgo自建局域网服务器,CSGO(KZ模式)服务器搭建常见问题答疑

热门文章

  1. python装饰器类型错误_有没有办法在继承期间保持装饰器? - python
  2. 一天搞定CSS:盒模型content、padding、border、margin--06
  3. (SpringMVC)概述和简单使用
  4. 转:YUM常用命令介绍
  5. Java锁详解之ReentrantLock
  6. Netty专题-(1)初识Netty
  7. android系统可以破吗,你的手机系统破到什么程度?一键查安卓漏洞
  8. 华为手机楷体字体下载_手机查看3D打印模型图纸,国产软件SView来了
  9. java数据写入文件方案,Java如何将字符串数据写入文件?
  10. python中configparser详解_python ConfigParser模块详解