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

时间: 2024-08-27 19:59:39

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

一个简单的多线程爬虫

   本文介绍一个简单的多线程并发爬虫,这里说的简单是指爬取的数据规模不大,单机运行,并且不使用数据库,但保证多线程下的数据的一致性,并且能让爬得正起劲的爬虫停下来,而且能保存爬取状态以备下次继续. 爬虫实现的步骤基本如下: 分析网页结构,选取自己感兴趣的部分; 建立两个Buffer,一个用于保存已经访问的URL,一个用户保存带访问的URL; 从待访问的Buffer中取出一个URL来爬取,保存这个URL中感兴趣的信息:并将这个URL加入已经访问的Buffer中,然后将这个URL中的所有外链URL

大数据之网络爬虫-一个简单的多线程爬虫

   本文介绍一个简单的多线程并发爬虫,这里说的简单是指爬取的数据规模不大,单机运行,并且不使用数据库,但保证多线程下的数据的一致性,并且能让爬得正起劲的爬虫停下来,而且能保存爬取状态以备下次继续. 爬虫实现的步骤基本如下: 分析网页结构,选取自己感兴趣的部分; 建立两个Buffer,一个用于保存已经访问的URL,一个用户保存带访问的URL; 从待访问的Buffer中取出一个URL来爬取,保存这个URL中感兴趣的信息:并将这个URL加入已经访问的Buffer中,然后将这个URL中的所有外链URL

MAC COCOA一个简单的多线程程序

功能: 实现多线程:2个线程同时工作,一个用时间计数器,一个用来打印信息 STEP1 XCODE ->New Application ->Cocoa中的Command Line 自动增加: #include <CoreFoundation/CoreFoundation.h> STEP2 // // main.c // test_runloop1 // // Created by DMD on 20/6/14. // Copyright (c) 2014 EDU. All right

C语言多线程的一个简单例子

多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> void * print_a(void *); void * print_b(void *); int main(){ pthread_t t0; pthread_t t1; // 创建线程A if(pthread_creat

MAC COCOA一个简单的多线程程序[2]

MAC COCOA一个简单的多线程程序[2] 使用RUNLOOP计数,实现一个时间计数器和事件at the same time 运行. STEP 1 H CODE: // // EDUAppDelegate.h // test_runloop_multithread // // Created by DMD on 23/6/14. // Copyright (c) 2014 EDU. All rights reserved. // #import <Cocoa/Cocoa.h> @interf

利用java的Socket实现一个简单hello/hi聊天程序

利用java的Socket实现一个简单hello/hi聊天程序 首先,我们来用java实现一个简单的hello/hi聊天程序.在这个程序里,我学习到了怎么用socket套接套接字来进行编程.简单理解了一些关于socket套接字和底层调用的关系.关于java的封装思想,我学会了一些东西,java里真的是万物皆对象.还学到了一点多线程的知识. TCP 在这里,不得不先介绍以下TCP.TCP是传输层面向连接的协议.提供了端到端的进程之间的通信方式.TCP在通信之前要先建立连接.这里我们称这个建立连接的

【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement

本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程,并分别通过Statement和PreparedStatement实现对数据库的查询.在下一篇blog中将重点比较Statement与PreparedStatement的差异. 1.为项目添加JDBC驱动 1)JDBC驱动下载 官方下载地址:mysql-connector-java-5.0.8.zip CSDN资料下载地址:mysql-connector-java-5.0.8.zip 2)为项目添加JDBC驱动 建立项目Java项目J

【CentOS】一个简单的Expect实例详解

Expect是基于Tcl的相对简单的一个免费的基本变成工具语言,用于实现自动和交互式任务程序进行通信,无须人工干预. 一.Expect的安装检查与Linux系统的实验环境 1.Expect的安装 [[email protected]]# rpm -qa expect expect-5.43.0-8.el5 expect-5.43.0-8.el5 #如果未安装expect,可以通过yum进行安装 [[email protected]]# yum install expect -y 2.Linux的

一个简单的backbone实例(基于139邮箱)

先看一下效果图: 代码如下: <!doctype html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>邮箱前端实现</title> <style type="text/css"> *{