线程小结
学完了线程,对线程有些的理解,感觉java中线程就好比开关的作用一样,如果只是一个主函数,那么java会自动的给这个主函数添加一个线程,启动这个函数,让这个函数按照代码的顺序执行各个指令。比如有以下的代码:
public class Test {
public static void main(String [] agrs){
Test ts= new Test();
ts.A();
}
void A(){
B();
C();
System.out.println("我是A");
}
void B(){
System.out.println("我是B");
}
void C(){
System.out.println("我是C");
}
}
这里是按顺序执行的,A方法中的B和C方法不能同时执行,只能是按照代码的顺序执行,线程的作用就是可以让B和C方法可以同时执行。对于内存来说,它并不是将内存分为几部分分别执行B、C方法,而是以一个很短的时间为间隔,轮换的执行着这些方法,以致表面上是同时进行的。对于线程的具体例子,我借鉴别人的思想做了一个坦克小游戏。大家如果有兴趣,可以在网上找找。
Java中要实现多线程,大体上有两种方式:
1:继承Thread类
2:实现Runnable接口
对于第一种:
public class SayHello extends Thread{
public static void main(String[] args) {
SayHello sh0= new SayHello("A");
SayHello sh1= new SayHello("B");
sh0.start();
sh1.start();
}
private String name;
public SayHello(){
}
public SayHello(String name){
this.name=name;
}
public void run(){
for(int i=0;i<5;i++){
System.out.println(name+" "+"SayHello"+" "+i);
}
}
}
他的输出结果的一种情况为:
A SayHello 0
B SayHello 0
A SayHello 1
B SayHello 1
A SayHello 2
A SayHello 3
A SayHello 4
B SayHello 2
B SayHello 3
B SayHello 4
并没有按照先A后B的方式执行。
2:第二种方法是实现Runnable接口:
public class SayHello2 implements Runnable {
private String name;
public SayHello2(){
}
public SayHello2(String name) {
this.name=name;
}
public static void main(String[] args) {
SayHello2 sh0=new SayHello2("A");
Thread thread0=new Thread(sh0);
thread0.start();
SayHello2 sh1=new SayHello2("B");
Thread thread1=new Thread(sh1);
thread1.start();
}
public void run() {
for(int i=0;i<7;i++){
System.out.println(name+" "+"SayHello"+" "+i);
}
}
}
他的输出结果的一种情况为:
B SayHello 0
A SayHello 0
B SayHello 1
B SayHello 2
B SayHello 3
B SayHello 4
A SayHello 1
A SayHello 2
A SayHello 3
A SayHello 4
A SayHello 5
A SayHello 6
B SayHello 5
B SayHello 6
上面就是两种实现多线程的方法,只不过只是涉及到了线程的启动方法,线程还有休眠的方法sleep();休眠的方法可以实现小游戏中某个物体的移动。例如在坦克大战中让坦克移动的方法就是利用sleep()方法使得某个坦克的线程休眠一定的时间坦克后重绘在的下一个位置。在线程结束后,最好要有一个stop();方法结束这个线程,释放内存。
<!--EndFragment-->
分享到:
相关推荐
Java线程基础教程完整版
java 线程基础入门 一个关于计算机的简化的视图是:它有一个执行计算的处理机、包含处理机所执行的程序的ROM(只读存储器)、包含程序所要操作的数据的RAM(只读存储器)。在这个简化视图中,只能执行一个作业。一个...
IBM JAVA java 多线程 教程 线程简介 从IBM弄到的java线程基础教程
java 线程实例 java线程基础练习 线程实例代码
本教程研究了线程的基础知识 — 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单程序。
本教程研究了线程的基础知识 — 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单 程序。 我们还将研究更复杂的、使用线程的应用程序的基本构件 — 如何在线程之间交换数据、如何控制 线程以及线程如何...
java多线程基础(英文),本文包括线程基础,生命周期,数据访问,线程同步等内容.
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
java线程 线程 教程 java线程教程 java线程学习资料 本教程有什么内容? 本教程研究了线程的基础知识— 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单 程序。 我们还将研究更复杂的、使用线程的应用...
Java线程基础信息 java线程操作机制 java线程运行机制 通过芯片的速度越来越快,散热也越来越困难。很久都没有看到CPU的原始速度有重大提升了。但我们仍然看到摩尔定律在起作用,CPU的设计者们继续在向每片硅晶上...
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 ...
JAVA多线程基础DEMO,都是一些基础演练,希望可以帮到你
java多线程基础资料,java多线程基础资料
主要介绍了java线程的基础实例解析,具有一定借鉴价值,需要的朋友可以参考下
Java线程 java 线程介绍说明 适用于有一定基础的
java多线程基础说课PPT教案.pptx
不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。...JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础上,如果解决多线程的可见性和有序性。
操作系统,网络协议,Java基础,Java线程,java并发,mysql,redis,分布式讲解,基础算法