您的位置:首页 > 编程语言 > Java开发

java基础巩固训练营【第一轮】(十) 多线程

2009-07-13 13:18 399 查看
本章的测试代码存放在 com.j2ee110.csdn.leader.mutilthread包路径下面

大家的练习代码存放在 com.j2ee110.csdn.leader.姓名标识.mutilthread包路径下面



什么是线程



“什么是线程?”,这个问题我还真不敢回答,因为网上给出的定义很多也很杂,而且提到线程我们就不得不提到进程,包括进程的生命周期,所占用的资源等。如果在继续下去还会涉及到这些资源和线程之间的关系,这就没有底了,市面上这样的书至少有10本。这远远超出了本章,以及本活动的范畴。



所以我觉得我们先搞点实际的,为什么要用线程?java中如何用线程?如何启动线程



1、为什么要用线程

很简单用为了提高效率,就像一个人做事情一般没有10个人做事情快一样,线程,多线程就是这样的,应用系统开启多个线程同时来进行处理。至于物理上是否在同时做事情我们暂且不管,反正多线程就是干这个事情的。



2、java中如何创建线程

因为java是一门面向对象语言,所以在java中线程也被抽象成的对象,在java中如果定义一个线程有两种办法



继承java.util.Thread类

参考代码 com.j2ee110.csdn.leader.mutilthread.ExtThread



实现java.util.Runnable接口



参考代码 com.j2ee110.csdn.leader.mutilthread.ImplRunnable





3、如何启动线程

参考代码 com.j2ee110.csdn.leader.mutilthread.MutilThreadMain



4、如何终端线程

当run()方执行完成后,线程变结束了。





本章的内容就这么多吧。其实我很想再和大家聊一些更多的东西,为此我也在公司的实习生中作个试验,但是试验的结果让我不是很满意,因为很多人在学习了这些东西之后还是搞不清楚,我甚至怀疑是否我的方法根本就不对,因此我觉定改变原来的策略,在项目的优化中在跟大家详细的说明线程其他的一些内容。



但是我觉得现有一个比较基本也很重要的特性就是数据的同步,因为度偶线程是多个线程一起工作,因此可能存在这样一种情况,就是多个线程同时访问相同的数据,这个时候就需要防止数据被非法修改。这是多线中非常容易让人模糊的概率。经过研究我发现,如果能将多线程对数据的冲突模拟出来,那便比较容易理解,因此我决定在第二轮学习中根据大家一起详细的来讨论讨论。



课后练习

很简单,大家用线程类实现的两种方式创建两个线程类,然后各创建20个线程。



暑期java基础巩固训练营开始

java基础巩固训练营 简介

java基础巩固训练营【第一轮】(一)项目环境和规范

java基础巩固训练营【第一轮】(二)J***A基础

java基础巩固训练营【第一轮】(三) 编写、编译、运行

java基础巩固训练营【第一轮】(四) 利器(IDE工具)

java基础巩固训练营【第一轮】(五) 基本数据类型

java基础巩固训练营【第一轮】(六) 面向对象的J***A

java基础巩固训练营【第一轮】(七) 数据结构中的java

java基础巩固训练营【第一轮】(八) 文件读写

java基础巩固训练营【第一轮】(九) 用java通信

java基础巩固训练营【第一轮】(十) 多线程

java基础巩固训练营【第一轮】(十一) 直面错误--java异常

java基础巩固训练营【第一轮】(十二) 我们一起来找茬

ava基础巩固训练营【第一轮】(十三) java桌面应用

java基础巩固训练营【第一轮】(十四) 大家一起做项目

如果您对我的文章感兴趣的话,请点击这里加我为好友,让我们一起进步



http://student.csdn.net/invite.php?u=106708&c=2383a3846076c876
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: