关键词:
一、概述
在Java中主要提供两种方式实现线程,分别为继承java.lang.Thread类与实现java.lang.Runnable接口。
二、继承Thread类
a、Thread类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建立Thread类实例。
Thread类中常用的两个构造方法如下:
public Thread():创建一个新的线程对象。
public Thread(String threadName):创建一个名称为threadName的线程对象。
b、完成线程真正功能的代码放在类的run()方法中,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread类中的start()方法执行线程,也就是调用run()方法。
c、Thread对象需要一个任务来执行,任务是指线程在启动时执行的工作,该工作的功能代码被卸载run()方法总。
run()方法必须使用以下语法格式:
public void run()
d、当执行一个线程程序时,就自动产生一个线程,主方法正式在这个线程上运行的。当不在启动其它线程是,该程序就是单线程程序,如在本章已签的程序都是单线程程序。主方法线程启动有java虚拟机负责,程序员负责启动自己的线程。
代码如下:
public static void main(String[] args)
new ThreadTest().start();
注意:(1)、如果start()方法调用一个已经启动的线程,系统将抛出IllegalThreadStateException异常。
(2)、在main方法中,使线程执行需要调用Thread类中的start()方法,strat()方法调用被覆盖的run()方法,如果不调用start()方法,线程永远都不会启动,在主方法没有调用start()方法之前,Thread对象只是一个实例,而不是一个真正的线程。
1 package com.lzw; 2 3 public class ThreadTest extends Thread //指定继承Thread类 4 private int count = 10; 5 public void run() //重写run()方法 6 while(true) 7 System.out.print(count + " "); 8 if (--count == 0) 9 return; 10 11 12 13 public static void main(String[] args) 14 new ThreadTest().start(); 15 16
三、实现Runnable接口
线程的两种实现方式(代码片段)
线程有两种实现方式一,Thread类 publicclassThreadimplementsRunnable 二,Runnable接口 publicinterfaceRunnable publicabstractvoidrun(); 区别:Thread是一个类,他继承了runnable接口,而runnable是一个接口,一个类只能有一个父类... 查看详情
线程实现的两种方式及区别(代码片段)
我们来用最经典的卖票的案例,表明两种实现方式的区别,同时分析线程不安全产生的原因一、继承Thread类packagetest;/***@Description*@Authorshusheng*@Email[email protected]*@Date2018/8/31*/publicclassSellTicketOneextendsThreadprivatestaticintticke 查看详情
实现多线程编程的两种方式(代码片段)
1.继承Thread类(Thread类实现了Runnable接口:publicclassThreadimplementsRunnable)2.实现Runnable接口实例代码:1.继承Thread类publicclassMyThreadDemopublicstaticvoidmain(String[]args)MyThreadthread=newMyThread();thread.start( 查看详情
实现多线程的两种方式(代码片段)
...码结构:publicclassThreadimplementsRunnable从中可以看出Thread类实现了Runnable,由于java中不支持多继承,所以实现多线程时,可以采用实现Runnable的方式。2.实现Runnable接口。 注意一下声明与调用不仅仅只是new一下,start一下,而是ne... 查看详情
实现多线程的两种方式,卖票场景,亲测可用(代码片段)
...场景: 多线程共同卖票,总票数在多个卖票窗口共享实现方式: 1继承Thread类; 2实现Runnable接口正文开始方式1Thread继承packagecom.example.demo;/***@Description:*@Author:tianminghai*@Date:2:55PM2018/10/24*/publicclassThreadDemoextendsThread 查看详情
匿名内部类实现线程的两种方式(代码片段)
publicstaticvoidmain(String[]args)//匿名内部类实现线程的两种方式/*Threadt1=newThread()@Overridepublicvoidrun()System.out.println("任务1...."+Thread.currentThread());;t1.start();*/newThread()publicvoidrun()System.out.println("任务1...."+Thread.currentThread());;.start();/*Threadt2=n... 查看详情
python-线程池的两种实现方式转载(代码片段)
1#!/usr/bin/envpython2#-*-coding:utf-8-*-34importqueue5importthreading6importcontextlib7importtime89StopEvent=object()101112classThreadPool(object):1314def__init__(self,max_num,max_task_num=None):15if 查看详情
传统线程技术中创建线程的两种方式(代码片段)
...建线程的方式:一是继承Thread类,并重写run()方法;二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread。这两种方式大部分人可能都知道,但是为什么这样玩就可以呢?下面我们来详细分析一下这两种... 查看详情
并发技术01传统线程技术中创建线程的两种方式(代码片段)
...建线程的方式:一是继承Thread类,并重写run()方法;二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread。这两种方式大部分人可能都知道,但是为什么这样玩就可以呢?下面我们来详细分析一下这两种... 查看详情
java中实现多线程的两种方式(代码片段)
Java中对于对于多线程的实现主要提供了两种方法继承Thread()类实现Runnable接口接下来从这两个方面进行说明相关知识。继承Thread()类写一个类直接继承Thread()类,然后重写Thread()类的run()方法,调用其start()方法即可启动线程... 查看详情
java多线程带你用不一样的思维看创建线程的两种方式(代码片段)
...两种方式start和run方法解析彩蛋:同时用两种方法来实现同一个线程,会遇到什么小知识:调用start方法,线程就会立刻启动吗?创建线程的两种方式通过实现Runnable接口publicclassCreateThread//继承Thread类来staticclassMyThre... 查看详情
go基础系列:go实现工作池的两种方式(代码片段)
workerpool简介workerpool其实就是线程池threadpool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。在线程池模型中,有2个队列一个池子:任务队列、已完成任务队列和线程池。其中已完成任务队列可... 查看详情
1-多线程的两种实现方式(代码片段)
packageorg.ks.多线程;/**多线程(多线程程序实现的方式1)(掌握)*1.继承Thread*定义类继承Thread*重写run方法*把新线程要做的事写在run方法中*创建线程对象*开启新线程,内部会自动执行run方法*///现象:bb和ksdsb交替执行publicclassDemo2_Thread_real... 查看详情
2.常用的实现多线程的两种方式(代码片段)
...下:publicinterfaceRunnablepublicabstractvoidrun();Runnable的作用,实现多线程。我们可以定义一个类A实现Runnable接口;然后,通过newThread(newA())等方式新建线程。 Thread 是一个类。Thread本身就实现了Runnable接口。它的声明如下:publicc... 查看详情
java多线程带你用不一样的思维看创建线程的两种方式(代码片段)
...两种方式start和run方法解析彩蛋:同时用两种方法来实现同一个线程,会遇到什么小知识:调用start方法,线程就会立刻启动吗?创建线程的两种方式通过实现Runnable接口publicclassCreateThread//继承Thread类来staticclassMyThre... 查看详情
java中多线程的两种创建方式(代码片段)
一丶继承Thread类实现多线程第一步:继承Thread类第二步:重写run()方法第三步:创建继承了Thread类的对象,调用start()方法启动。//线程创建方式一:/*第一步:继承Thread类第二步:重写run()方法第三步:创建继承了Thread类... 查看详情
java多线程编程的两种方式(代码片段)
...简单根据我之前的示例代码来演示一些,多线程编程实现的两种方法:1、定义类继承thread类并且重写其run方法,最好调用其run()方法运行。以下是main函数中的调用运行多线程代码:(继承thread重写run来实 查看详情
开启线程的两种方式(代码片段)
...在使用层面,有很大的相似性,因而不再详细介绍二开启线程的两种方式方式一fromthreadingimportThreadimporttimedefsayhi(name):time.sleep(2)print(‘%ssayhello‘%name)if__name__==‘__main__‘:t=Th 查看详情