Java Tread多线程(0)一个简单的多线程实例
作者 : 卿笃军
原文地址: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
Java Tread多线程(0)一个简单的多线程实例的更多相关文章
- 一个简单的多线程Python爬虫(一)
一个简单的多线程Python爬虫 最近想要抓取拉勾网的数据,最开始是使用Scrapy的,但是遇到了下面两个问题: 前端页面是用JS模板引擎生成的 接口主要是用POST提交参数的 目前不会处理使用JS模 ...
- C语言多线程的一个简单例子
多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- Qt5.9一个简单的多线程实例(类QThread)(第一种方法)
Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...
- 使用JAVA实现的一个简单IOC注入实例
https://blog.csdn.net/echoshinian100/article/details/77977823 欲登高而望远,勿筑台于流沙 RSS订阅 原 使用JAVA实现的一个简单IOC ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)
使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)
这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...
- 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo
简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...
- 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程.并分别通过Statement和PreparedStatement实现对数据库的查询. 在下一篇blog中将重点比較Statement与P ...
随机推荐
- 纯C语言INI文件解析
原地址:http://blog.csdn.net/foruok/article/details/17715969 在一个跨平台( Android .Windows.Linux )项目中配置文件用 IN ...
- 数字雨Shopex 4.8.5 SQL Injection Exp
# -*- coding:utf-8 -* #Author:MXi4oyu #Email:798033502@qq.com #Shopex 4.8.5 SQL Injection Exp #转载请说明 ...
- 区间Dp 暴力枚举+动态规划 Hdu1081
F - 最大子矩形 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Des ...
- Linux 之 rsyslog
Linux 之 rsyslog 系统日志转发 一.rsyslog 介绍 ryslog 是一个快速处理系统日志的程序,提供了高性能.安全功能和模块化设计.rsyslog 是syslog 的升级版,它将多 ...
- linux zombie process相关学习
1. zombie process是什么? zombie process是那些在系统中已经死掉的process, 通过ps -A | grep defunct可以查看系统中有多少zombie proc ...
- 西南民大oj(递推)
我的数学不可能那么难推 时间限制(普通/Java) : 3000 MS/ 9000 MS 运行内存限制 : 65536 KByte总提交 : 49 测试通过 : ...
- HDU 4869 Turn the pokers(推理)
HDU 4869 Turn the pokers 题目链接 题意:给定n个翻转扑克方式,每次方式相应能够选择当中xi张进行翻转.一共同拥有m张牌.问最后翻转之后的情况数 思路:对于每一些翻转,假设能确 ...
- RabbitMq消息序列化简述
涉及网络传输的应用.序列化不可避免. 发送端以某种规则将消息转成byte数组进行发送. 接收端则以约定的规则进行byte[]数组的解析. 序列化的选择能够是jdk序列化,hessian,jackson ...
- android插件技术-apkplug于OSGI服务基础-08
我们提供 apkplug 下OSGI使用demo 源代码托管地址为 http://git.oschina.net/plug/OSGIService 一 OSGI与android Service 异同点 ...
- Android的PackageManager的使用
Android系统提供了很多服务管理的类,包括ActivityManager.PowerManager(电源管理).AudioManager(音频管理)以及PackageManager管理类.Pack ...