线程与多线程

本文介绍了线程的基本概念,强调线程作为程序执行流的最小单元,以及如何在Java中创建线程。通过创建Thread类的子类并重写run方法,可以实现线程的创建和启动。此外,文章还探讨了多线程的实现,通过创建多个线程类实例实现并发执行。最后,讨论了线程同步的重要性,提到了使用synchronized关键字实现同步锁,以避免线程竞争问题。

什么是线程

线程是程序执行流的最小单元,也是进程运行中的一个实体,它是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。线程之间可以相互创建和撤销,线程不能被复制,一旦停止线程它便会死亡。因为线程可以独立完成自己的任务,这样一来,程序便可以实现更加丰富的功能,这也是设计游戏时需要掌握的技能。

怎么创建线程

java内部有Thread类,我们为其创建一个对象便是一个线程。假设我在做飞机大战这个线程游戏。我们这里只介绍框架的搭建,不具体谈方法体。首先,我创建了一个ThreadPlane类继承Thread类,然后重写run方法,写了一个while循环(用true来保证这个线程会一直运行下去)。然后加上延时,这样我们就可以控制程序执行的频率了,此时需要抛出异常。

public class ThreadPlane extends Thread
{
	public void run()
	{
			while(true)
			{
			    
			}
			try
			{
				Thread.sleep(100);
			}
			catch (InterruptedException e)
			{
				e.printStackTrace();
			}		
	}
}

有了线程的类,我们只有为其创建具体的对象才能够实现这个线程。于是我们在想创建线程的地方为其申明一个对象。

public ThreadPlane tb;

然后在方法内创建并启动这个线程。注意,我们用到的是start()方法来启动这个线程。

	if (tb == null) 
	{
	ThreadPlane tb = new ThreadPlane();
	tb.start();
	}

然后程序便会不断执行run()方法的内容了。你可以在run方法内写任意你想执行的内容。

多线程的实现

多线程的实现方法即创建多个类继承Thread类,然后分别在其中重写run()方法,然后创建类的对象,并start即可。这样一来就可以多个线程同时运行了。

线程 同步锁

在多线程的运行过程中可能也会遇到一些问题,比如线程的同步问题。各个线程看似彼此独立,但其实他们是轮流使用cpu的资源,线程的同步就是协同步调,按预定的先后次序进行运行。如果没有线程的同步,如果一个线程过长,可能会出现方法没有执行完就被别的线程抢占资源这类情况。所以为了线程的同步,我们需要加上同步锁,这里我们介绍一种最方便实现的同步锁synchronized。我们只要在方法的public后加上synchronized即可,这可以确保次方法执行完之后才会把cpu资源让给别的线程。例如:public synchronized void gameRun(){ }。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值