java笔记之线程方式1启动线程

* 需求:我们要实现多线程的程序。
 * 如何实现呢?
 *   由于线程是依赖进程而存在的,所以我们应该先创建一个进程出来。
 *   而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程。
 *   Java是不能直接调用系统功能的,所以,我们没有办法直接实现多线程程序。
 *   但是呢?Java可以去调用C/C++写好的程序来实现多线程程序。
 *   由C/C++去调用系统功能创建进程,然后由Java去调用这样的东西,
 *   然后提供一些类供我们使用。我们就可以实现多线程程序了。
 * 那么Java提供的类是什么呢?
 *   Thread
 *   通过查看API,我们知道了有2中方式实现多线程程序。
 *
 * 方式1:继承Thread类。
 * 步骤
 *   A:自定义类MyThread继承Thread类。
 *   B:MyThread类里面重写run()?
 *    为什么是run()方法呢?
 *   C:创建对象
 *   D:启动线程

run()和start()的区别?
  // run():仅仅是封装被线程执行的代码,直接调用是普通方法
  // start():首先启动了线程,然后再由jvm去调用该线程的run()方法。

 

 1 public class MyThreadDemo {
 2     public static void main(String[] args) {
 3         // 创建线程对象
 4         // MyThread my = new MyThread();
 5         // // 启动线程
 6         // my.run();
 7         // my.run();
 8         // 调用run()方法为什么是单线程的呢?
 9         // 因为run()方法直接调用其实就相当于普通的方法调用,所以你看到的是单线程的效果
10         // 要想看到多线程的效果,就必须说说另一个方法:start()
11         // 面试题:run()和start()的区别?
12         // run():仅仅是封装被线程执行的代码,直接调用是普通方法
13         // start():首先启动了线程,然后再由jvm去调用该线程的run()方法。
14         // MyThread my = new MyThread();
15         // my.start();
16         // // IllegalThreadStateException:非法的线程状态异常
17         // // 为什么呢?因为这个相当于是my线程被调用了两次。而不是两个线程启动。
18         // my.start();
19 
20         // 创建两个线程对象
21         MyThread my1 = new MyThread();
22         MyThread my2 = new MyThread();
23 
24         my1.start();
25         my2.start();
26     }
27 }
28 public class MyThread extends Thread {
29 
30     @Override
31     public void run() {
32         // 自己写代码
33         // System.out.println("好好学习,天天向上");
34         // 一般来说,被线程执行的代码肯定是比较耗时的。所以我们用循环改进
35         for (int x = 0; x < 200; x++) {
36             System.out.println(x);
37         }
38     }
39 
40 }
View Code

 

转载于:https://www.cnblogs.com/lanjianhappy/p/6383913.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2015年Devoxx比利时–最后的想法

好吧&#xff0c;另一个Devoxx对我而言已经结束了&#xff0c;它必须是第六次中的第五次&#xff08;或更多次&#xff09;不记得说实话。 距离我上次上任已经3年了&#xff0c;所以有点回头了。 Devoxx&#xff08;比利时&#xff09;正在成长&#xff0c;实际上这是我第一次…

全国职业院校技能大赛软件测试题目,我院荣获2017年全国职业院校技能大赛软件测试赛项一等奖...

6月6日&#xff0c;2017年全国职业院校技能大赛“软件测试”赛项在河南许昌落下帷幕&#xff0c;共有来自全国29个省市(自治区)的87支代表队261名选手参加比赛。由我院计算机系陈爽、张冬雪、侯博睿等三名同学组成的北京市第二代表队荣获大赛一等奖(第五名)。王红霞、温绍洁荣获…

ntp如何确认与服务器偏差_CentOS 8 启用 NTP 服务

NTP 服务是什么和为什么我们需要在我们的服务器启用 NTP 服务&#xff1f;可能很多人都不是非常了解&#xff0c;简单来说就是我们希望我们服务器的时间是准确的没有偏差的。这个的意义在数据插入和你程序取得计算机时间的时候是准确的。比如说在 java 中如果 new date() 将会获…

JavaFX上手--第1天

1.第一个JavaFX Application JavaFX 使用Java来制作可视化图形&#xff0c;可以做动画和3D效果&#xff0c;JavaFX从JDK中直接使用。 package application;import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene…

年月日软件测试用例的设计,实验三日期题白盒测试用例设计.doc

实验三日期题白盒测试用例设计日期问题白盒测试用例的设计(实验时间2012.3.21)一、实验目的1&#xff0e;熟练掌握如何运用基路径测试方法进行测试用例设计。二、实验内容1、题目前一日函数PreDate是NextDate的逆函数(代码实现见下)&#xff0c;实现功能为&#xff1a;输入1800…

机制 linux_从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位&#xff0c;面试官出了一个如下的题目&#xff1a;给出如下C程序&#xff0c;在linux下使用gcc编译&#xff1a;#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){pid_t …

p1417 烹调方案_Java 8的烹调方式–拼图项目

p1417 烹调方案什么是Project Jigsaw&#xff1a;Project Jigsaw是使Java编译器模块知道的项目。 多年以来&#xff0c;Java API一直是单块的&#xff0c;即从代码的任何部分都可以平等地看到整个API。 还没有任何方法可以声明代码对任何其他用户库的依赖关系。 拼图项目试图以…

jQuery progression 表单进度

progression.js是一款表单输入完成进度插件。支持自定义提示框大小、方向、左边、动画效果、间距等&#xff0c;也支持是否显示进度条、字体大小、颜色、背景色等。 在线实例 实例演示 使用方法 <form id"myform"> <p> <label>点击一个…

教学案例 计算机,宁夏计算机教学案例

宁夏计算机教学案例&#xff0c;答辩老师不仔细看**跟他们发现不了你**中的问题根本是两个概念。宁夏计算机教学案例&#xff0c; 生手指从未使用过计算机系统的学习者。他们不熟悉计算机的操作&#xff0c;缺乏有关计算机系统的知识。他们对计算机会产生一种陌生的感觉。新手指…

python读取多个文件夹图片_python或C++读取指定文件夹下的所有图片

本文实例为大家分享了python或C读取指定文件夹下的所有图片&#xff0c;供大家参考&#xff0c;具体内容如下1.python读取指定文件夹下的所有图片路径和图片文件名import cv2from os import walk,pathdef get_fileNames(rootdir):data[]prefix []for root, dirs, files in wal…

您在2016年会做什么? Apache Spark,Kafka,Drill等

让我们玩得开心。 这是新的一年的开始-我们正处于新事物的门槛上-因此让我们期待您在2016年可能会做的事情。现在我知道做出预测的风险&#xff0c;尤其是有记录的预测&#xff0c;但是我很高兴您能在一年后回访&#xff0c;看看我对2016年的预测是如何完成的。 您在2016年会…

话筒好坏测试软件,如何简单地判断麦克风的质量好坏?

如何简单地判断麦克风的质量好坏&#xff1f;麦克风质量好不好&#xff0c;主要看三点&#xff1a;咪芯&#xff0c;线材和外壳。在挑选麦克风时&#xff0c;我们通常都不会一一上手试用&#xff0c;而是通过它自身的规格参数来进行初步地判断&#xff0c;一般来说&#xff0c;…

怎么保证读取最新数据_Kafka怎么保证数据不丢失?

Kafka怎么保证数据不丢失&#xff1f;这个问题要从3个方面来保证数据不丢失&#xff1a;生产者、服务端、消费者。01producer 生产端是如何保证数据不丢失的1.ack的配置策略acks all (或-1)生产者在发送消息之后&#xff0c;需要等待ISR中所有的副本都成功写入消息之后才能够收…

取模和求余的区别

通常情况下取模运算(mod)和求余(rem)运算被混为一谈&#xff0c;因为在大多数的编程语言里&#xff0c;都用%符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下%运算符的具体意义&#xff0c;因为在有负数存在的情况下&#xff0c;两者的结果是不一样的。对于整…

计算机转正述职报告ppt,转正述职报告ppt

转正要做述职演讲?出国留学网提供的新员工转正述职报告ppt就是为您量身定做的述职好帮手&#xff0c;希望大家喜欢!前三页预览&#xff1a;延伸阅读——如何做一个好的PPT演讲一个好的PPT演讲不是源于自然&#xff0c;有感而发。并且&#xff0c;一个好的PPT演讲需要演讲者的精…

怎么圆角变直角_衣柜设计个圆角有什么用?效果好看又实用,会这样装的都是老木工...

衣柜设计个圆角有什么用&#xff1f;效果好看又实用&#xff0c;会这样装的都是老木工随着生活水平的不断提高&#xff0c;大家对于生活质量也有着越来越高的期望。从生活起居以及房子的装修中&#xff0c;我们可以看出来。因此家里的东西堆积的也更加的多&#xff0c;这对于储…

不会吸引人的JavaDocs源样本

JavaDoc源代码嵌入很烂&#xff01; 我喜欢JavaDoc&#xff0c;但年龄不理想。 当您使用其他工具时&#xff08;例如在Microsoft世界中&#xff09;&#xff0c;突然间&#xff0c;嵌入式示例看起来很棒&#xff0c;并且“搜索”功能已内置&#xff01; 我们为什么不能拥有它…

浙大计算机硕士比本科985,二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!...

原标题&#xff1a;二本出身的985研究生与985本科生&#xff0c;哪个更厉害&#xff1f;网友&#xff1a;差的太多&#xff01;概率&#xff0c;还是概率问题。即便2本考研到985是很优秀&#xff0c;但能优秀到让985本科生服气的还是少数。说到底&#xff0c;是因为考研不是绝对…

cp: omitting directory解决方案

cp: omitting directory是因为目录下面还有目录。应该使用递归方法。需要加入-r参数。 及&#xff1a;cp -r 该目录名。转载于:https://www.cnblogs.com/zipon/p/6391153.html

python 网络服务器框架_Django是Python下的一款网络服务器框架

Django是Python下的一款网络服务器框架。Python下有许多款不同的框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。虽然Django之于Python&#xff0c;达不到Rail之于Ruby的一统江湖的地位&#xff0c;但Django无疑也是Python在网络应用方面的一位…