什么是线程
线程是程序执行流的最小单元,也是进程运行中的一个实体,它是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。线程之间可以相互创建和撤销,线程不能被复制,一旦停止线程它便会死亡。因为线程可以独立完成自己的任务,这样一来,程序便可以实现更加丰富的功能,这也是设计游戏时需要掌握的技能。
怎么创建线程
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(){ }。
本文介绍了线程的基本概念,强调线程作为程序执行流的最小单元,以及如何在Java中创建线程。通过创建Thread类的子类并重写run方法,可以实现线程的创建和启动。此外,文章还探讨了多线程的实现,通过创建多个线程类实例实现并发执行。最后,讨论了线程同步的重要性,提到了使用synchronized关键字实现同步锁,以避免线程竞争问题。
10万+

被折叠的 条评论
为什么被折叠?



