作者 : 卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/39341887

本文演示,一个简单的多线程实例,并简单分析一下线程。

编程多线程时,一般步骤:

1)继承Thread函数。

2)覆盖run函数。

注意:1)main函数为主线程,main里面存放的是主线程的运行代码;

Demo1为子线程,里面的run函数里面存放的是子线程须要运行的代码;当中,本文中主线程和子线程运行的优先级是一样的。

2)启动线程必须用start()启动,而不能直接调用run方法。

差别:①start() :开启线程,并执行run方法;(start会调用底层开启线程,Java本身不会开启一个线程,start肯定是调用了Windows底层的什么开启了线程,这里执行环境是Windows)

Demo1 demo1 = new Demo1();
demo1.start();

②run():相当于直接函数调用(主线程运行的run内容),子线程创建了,但没有开启并运行;(run的功能,不过为了封装线程运行的代码)

Demo1 demo1 = new Demo1();
demo1.run();

③局部变量,在每一个线程其中都有独立的一份。

Example: 一个简单的Demo例如以下:

package thread.demo1.qdj;class Demo1 extends Thread
{public void run(){for (int x = 0; x < 50; ++x)System.out.println("启动了线程Demo1");}
}public class CThreadDemo1 {public static void main(String[] args) {Demo1 demo1 = new Demo1();demo1.start();for (int x = 0; x < 50; ++x)System.out.println("正在执行主线程");}
}

执行结果显示:

一些简单的说明:

1)获得线程的名字:[注:currentThread()获取当前线程对象 ] ,下面两种写法是一样的。

class Demo1 extends Thread
{public void run(){//System.out.println(this.getName());System.out.println(Thread.currentThread().getName());}
}

2)设置线程的名字
①编写构造函数

class Demo1 extends Thread
{public Demo1(String name) {//调用父类super(name);}public void run(){//System.out.println(this.getName());System.out.println(Thread.currentThread().getName());}
}

②创建线程时传參

Demo1 demo1 = new Demo1("name1");

參考文献:Java视频 毕向东 主讲

原文地址:http://blog.csdn.net/qingdujun/article/details/39341887

转载于:https://www.cnblogs.com/zfyouxi/p/4304321.html

Java Tread多线程(0)一个简单的多线程实例相关推荐

  1. 【Java线程安全】一个简单的多线程程序

    安全示例1 同步块 package cn.hanquan.test;public class HappyTrain {public static void main(String[] args) th ...

  2. VC菜菜鸟-创建一个简单的多线程任务

    在学习编程的过程中,经典的"HelloWorld"给我最大的启示就是,一切从简,简而明理. 写一个连"白痴"都看得懂的代码,是编程的最高境界. 想要学一个知识点 ...

  3. Qt5.9一个简单的多线程实例(类QThread)(第一种方法)

    Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...

  4. java播放声音类和一个简单示例

    java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下:  import java.io.File; import java.io.IOException; import javax.so ...

  5. JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...

  6. exchange java对象,【原】Java并发程序的一个应用Exchanger的实例

    [原]Java并发程序的一个使用Exchanger的实例 今天看了些Exchanger的资料,有个喝水的例子不错.我这里细化了以下,并得到实现. 思路: 有一个Drinker和一个Waiter,有两个 ...

  7. 递归算法(python),汉诺塔问题,斐波那契数列,一个简单的递归实例,用递归实现阶乘,用递归查看目录及文件

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请 ...

  8. 《ANSYS Workbench 14有限元分析自学手册》——1.7 一个简单的分析实例

    本节书摘来自异步社区<ANSYS Workbench 14有限元分析自学手册>一书中的第1章,第1.7节,作者: 吕建国 , 康士廷 更多章节内容可以访问云栖社区"异步社区&qu ...

  9. 一个简单的HTML实例

    一个简单的HTML实例 适合新手的一个简单的HTML实例 <!DOCTYPE html> <html lang="zh"> <head>< ...

最新文章

  1. nodejs繁琐地自建路由
  2. 字符串匹配的KMP算法
  3. java发送加密报文_RSA加密---从后台到客户端实现报文加解密
  4. 【python】使用plt.imshow(image)显示图片一片空白,像素值有数据
  5. C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr
  6. mysql concat例子_MYSQL中CONCAT详解
  7. VMware Workstation 与 Server 的区别
  8. 2021年中国电子设备维修服务市场趋势报告、技术动态创新及2027年市场预测
  9. hdu2847(2009多校第四场) 01串添加最少01使被k整除(暴力)
  10. Codeforces Round #417 (Div. 2) B. Sagheer, the Hausmeister
  11. 数仓系列 | Flink 窗口的应用与实现
  12. Net设计模式实例之建造者模式(Builder Pattern)(1)
  13. 猿大师VLC播放程序播放RTSP实时视频提示“系统找不到指定文件”
  14. 河南计算机会考必背知识点,2017年河南物理高中会考知识点大全
  15. 平板用电容笔还是触控笔?双十一值得买电容笔推荐
  16. springboot前后端分离,邮箱/手机验证号激活和登录,手机注册和激活
  17. “封号斗罗”程序员修炼之道:通向务实的最高境界
  18. Postgresql及mongodb下载
  19. 怎么人像抠图?这几种抠图方法一看就会
  20. android 模拟器 vuforia,Vuforia+Unity尝试AR小功能(1)

热门文章

  1. VC中按钮控件的启用(enable)和禁用(disable)
  2. can协议解析字符串的原理
  3. 机器学习物语(2):大数定理军团
  4. 机器学习资料整理,收藏了不后悔!
  5. Tarjan 强连通分量
  6. HTML <cite> 标签
  7. mysql操作语句now_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!
  8. [BUUCTF-pwn]——mrctf2020_shellcode
  9. [BUUCTF-pwn]——[BJDCTF 2nd]ydsneedgirlfriend2
  10. [BUUCTF-pwn]——ciscn_2019_s_3