Java多线程-继承Thread类,示例

Java多线程实现:Thread类与Runnable接口对比解析 本文详细介绍了Java中实现多线程的两种方式:继承Thread类和实现Runnable接口。通过对比分析两种方法的代码示例,揭示了它们的运行机制和特点。文章旨在帮助读者更好地理解和掌握Java多线程编程中的核心概念。... 阅读详情

 继承Thread类,调用start方法启动线程。

示例,

public class ThreadTest extends Thread {
    public ThreadTest(String name){
        super(name);
    }


    @Override
    public void run() {
        for (int i = 0; i<5 ; i++){
            System.out.println("Thread-"+Thread.currentThread().getName()+": "+i);
            try {
                Thread.sleep(Math.round(Math.random()*1000));
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

    public static void main(String[] args){
        ThreadTest threadTest1 = new ThreadTest("Thread-1");
        threadTest1.start();

        ThreadTest threadTest2 = new ThreadTest("Thread-2");
        threadTest2.start();
    }
}

执行结果


Thread-Thread-2: 0
Thread-Thread-1: 0
Thread-Thread-2: 1
Thread-Thread-2: 2
Thread-Thread-1: 1
Thread-Thread-2: 3
Thread-Thread-1: 2
Thread-Thread-2: 4
Thread-Thread-1: 3
Thread-Thread-1: 4


 

Rapid SCADA MQTT 一、配置RapidSCADA 1、准备KpMqtt.dll、Jint.dll库文件,从网盘下载。 2、将以上两个文件拷贝到SCADA安装目录的Comm/KP目录下,如下: C:\SCADA\ScadaComm\KP 3、新建SCADA项目 4、新建Line 5、新建Device 6、拷贝Config目录下的KpMqtt_001.xml文件、KpMqtt_Job.js文件到项目Comm\Config下,如下示例链接 C:\SCADA\Projects\MQTTProject\Instances\Defau 阅读详情

相关推荐

【KITTI数据集中Raw_Data数据标定文件中的参数关系解读】

上一节本人将KITTI Odometry数据集中的参数文件进行了解释。本节主要针对一些做融合slam的人,将Raw_Data数据标定文件中的参数按照自己的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

weixin_43389152的博客 1526

java基础-5 多线程

多线程 目录 多线程 进程和线程 多线程实现 设置获取线程名称 线程调度(设置线程优先级) 进程和线程 进程:是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源 线程:是进程中的单个顺序控制流,是一条执行路径 单线程:一个进程如果只有一条执行路径,则称为单线程程序 多线程:一个进程如果有多条执行路径,则称为多线程程序 多线程实...

QYmufeng的博客 285

e-puck场景搭建

可以注意到一个黑色的小窗口出现在三维视图的左上角。它显示了电子吸盘机器人的摄像头拍摄的图像。该图像将保持黑色,直到机器人的控制器明确启用相机。最后,单击右上角的“x”可以关闭它。在对话框中,选择PROTO节点(Webots项目)/robots/gctronic/e-puck/e-puck(Robot)。一个电子吸盘机器人应该出现在竞技场的中央。通过按Alt+左键单击+拖动,对机器人施加力。无法对WoodenBox节点施加力,因为默认情况下,它们没有质量,并且被视为粘在地板上。将新控制器与机器人链接。

weixin_66540163的博客 767

Java自学笔记:继承Thread类实现多线程

TestThread.java: //继承Thread类的方法实现多线程 public class TestThread extends Thread{ @Override public void run() { System.out.println("多线程的运行代码"); for (int i = 0 ; i<4;i++){ System.out.println("这是多线程的逻辑代码:"+i); }...

weixin_48883622的博客 383

单细胞专题(1) | 单细胞转录组研究样本准备指南(上)

单细胞RNA测序(scRNA-seq)是目前最前沿,能进行大规模实验的转录组研究技术,为理解细胞组成和动态生物学过程提供了很多新的见解。单细胞研究已经为我们理解发育过程,老化和疾病(如癌症)等提供了大量数据。在这里,小编主要就前期的样本准备与保存需注意问题给大家进行讲解,以备大家在不同的研究场景和研究背景下,走好单细胞转录组学研究的第一步。

bioyigene的博客 4229

CDR学习笔记——02

这篇写一些高级CDR的架构原理。

... 1016

继承 Thread 类创建线程类

继承 Thread 类创建线程类

wzhy2016的博客 734

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3068

java多线程学习 代码笔记

继承Thead创建线程 public class Threadtest extends Thread{ @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println("A" + i); } } public static void main(String[] args) { Threadtest th

qq_43597773的博客 408

8.5华为OD机试真题 新系统 - IPv4 等长子网划分与自动分配系统 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - IPv4 等长子网划分与自动分配系统 (Java/Py/C/C++/Js/Go)

算法大师! 526

Linux安装Docker(图文解说详细版)

第一步,下载docker 下载地址: https://download.docker.com/linux/static/stable/x86_64/ 这次的演示我们使用docker-18.06.3-ce.tgz 这个版本 第二步,上传到云服务器上面 使用rz命令上传或者fltp工具进行上传 第三步,解压文件 第四步,将解压出来的docker文件复制到 /usr/bin/ 目录下 这么做的目的是将docker交给linux自己去管理,类似spring中的ioc(猜测,非正经知识) cp docker

编码人生 1万+

2021-09-08错题

场景: 在练习 错题 错题1描述: 关于下面这段Java程序,哪些描述是正确的:( ) public class ThreadTest extends Thread { public void run() { System.out.println("In run"); yield(); System.out.println("Leaving run"); } public static void main(String []argv) { (new ThreadTest()).start(); }

weixin_46579624的博客 265

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

多线程——继承Thread 类和实现Runnable 接口的区别

java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点:  首先,java只能单继承,因此如果是采用继承Thread的方法,那么在以后进行代码重构的时候可能会遇到问题,因为你无法继承别的类了。  其次,如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则

邵鸿鑫 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java中多线程的创建——通过继承Thread类

在Java中,多线程编程是一种重要的技术,它允许程序同时执行多个任务。Java提供了两种主要的方式来创建线程:继承`Thread`类和实现`Runnable`接口。本文将重点介绍通过继承`Thread`类来创建多线程的方法,并给出相应的示例代码和注释,以帮助初学者更好地理解和掌握。

qq_36720723的博客 574

Java 多线程技术:(二)多线程的实现

多线程的实现1.通过继承 Thread 类实现多线程2.通过实现接口 Runnable 实现多线程 1.通过继承 Thread 类实现多线程 一定的缺点:Java 中的类是单继承的,一旦继承了 Thread 类,就不允许再去继承其它的类. import java.io.*; public class Text{ public static void main(String[] args) throws IOException { MyThread mt=new MyThread()

地球村 641

多线程的实现以及Thread和Runnable的区别

多线程的实现以及区别 (常识了解:Thread类也实现了Runnable接口,详情可以查看java API或者查看源码) 在java中多线程实现有两种方式,分别是继承Thread类和实现Runnable接口。而对于这两种方式,究竟怎么来实现以及这两种方式的区别是什么,什么情况下用哪种方式,以下做了简单介绍: 我们先看一下怎么来实现: 1.继承Thread类 public class ext_Thr...

weixin_44297527的博客 278

java线程(2)——创建的三种方式1.继承Thread类

java线程创建 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口

木子 旭的博客 424

java 多线程之继承Thread类实现创建多线程及实现Runnable接口创建多线程

java 多线程之继承Thread类实现创建多线程1.Java 多线程之Thread类2.继承Thread类实现创建多线程3.Thread类常用的方法 1.Java 多线程之Thread类 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来实现。 Thread类的特性 ① 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run(...

码农回顾 2540

Java多线程基础

Java实现多线程主要有三种方式,下面介绍一下这三种方式。 继承Thread类,重写run方法。这种是最简单的,直接写一个新类继承自Thread,然后重写run方法来实现我们自己的需求。demo代码如下。 package demo; public class Demo01 { public static void main(String[] args) { new MyThread2(...

‎‎‎‎‎不想吃泡面 869

Java 多线程——Thread类和Runable接口

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口; Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的 run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread exten

苍茫大地的专栏 7306

java中创建多线程的4种方式

在 Java 编程中,多线程是一项非常重要的技术,它能够充分利用计算机的多核处理器资源,提高程序的执行效率和响应性。本文将详细介绍 Java 中创建多线程的四种方式,包括继承 Thread 类、实现 Runnable 接口、实现 Callable 接口以及使用线程池,并对每种方式的原理、代码示例和适用场景进行深入剖析。

天冬忘忧的博客 2634

JAVA多线程--Runnable和Thread的区别

转载:http://blog.youkuaiyun.com/wwww1988600/article/details/7309070 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, ...

u022731937的博客 125

Java多线程的使用

Java多线程有2种方式,继承Thread类和实现Runnable接口2种。下面将以代码说明: package com.mainpac; public class Main { public static void main(String args[]){ //继承类线程 MyThread1 t1= new MyThread1(); t1...

gang148375的博客 196

Java 多线程&继承Thread类——2

从上面的源代码中可以发现,Thread类实现了 Runnable接口,它们之间具有多态关系, 多态结构的示例 代码如下: 继承Thread类的方式VS实现Runnable接口 其实使用继承Thread类的方式创建新线程时,最大的 局限是不支持多继承,因为Java语言的特点是单根继承, 所以为了支持多继承,完全可以实现Runnable接口,即一 边实现一边继承,但这两种方式创建线程的功能是一样 的,没有本质的区别。 继承Thread实战 线程类 主程序 上面代码

爱的叹息的专栏 354

Java多线程实现-Thread类

一、实现过程 Thread类是一个支持多线程的功能类,只要有一个子类它就可以实现多线程。 所有程序的起点是main方法,所有线程也有一个自己的起点,run方法,多线程的每个主体类之中都必须覆盖Thread类中所提供的run方法,Thread类中run的源码如下: /** * If this thread was constructed using a separate * <code>Runnable</code> run object, then that

kking_edc的博客 478

Java多线程之线程的创建与Thread类的使用

本篇文章介绍java多线程中Thread类的使用以及有关线程对象创建和常用方法。

未见花闻的博客 3170
上一篇: Java多线程-实现Runnable接口run方法,示例
下一篇: Java多线程-实现Callable接口的call()方法,示例
小鸡炖蘑菇Plus版
博客等级 码龄10年 10粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值