11.3 定义任务
一个线程执行一个任务(task),所以需要用某种方法来描述这个任务。Runnable类提供了一个公共接口来执行任何任意的任务。在这里,Runnable类是ZThread库的核心,在安装完ZThread库后,可以在include目录下的Runnable.h文件中找到它:
把Runnable类做成一个抽象基类,Runnable类就可以很容易地将一个基类与其他类结合起来。
为了定义一个任务,可以从Runnable类继承并且重载run()函数,使任务去做命令它做的事情。
例如,下面的这个LiftOff任务显示了在火箭发射离地升空前的倒计时:
标识符id能区别该任务的多个实例。如果只创建了单个实例,可以使用ident的默认值。析构函数允许读者看到一个任务已被正确地销毁。
在下面的例子中,任务的run()函数不是被单独的线程驱动;它在main()函数中仅被直接调用。
当一个类从Runnable派生出来的时候,它必须有一个run()函数,但它却没有什么特别的—没有产生任何天生的线程处理的能力。
为完成线程处理的行为,必须使用线程类Thread。