Java线程实现:计算阶乘并打印线程名

需积分: 8 1 下载量 175 浏览量 更新于2024-08-26 收藏 1KB TXT 举报
在Java编程中,创建线程类并重写run()方法是实现多线程的基础。在这个示例中,我们主要关注如何设计一个名为`CountThread`的自定义线程类,该类继承自`Thread`类,并在run()方法中执行具体的任务。 首先,`CountThread`类有两个构造函数:一个是带有参数的构造函数,用于接收一个整数`num`,这将作为计算阶乘的基数;另一个无参构造函数,当用户没有提供参数时会调用。在这个类中,关键在于重写`run()`方法: 1. 在run()方法内部,初始化一个变量`sum`为1,因为阶乘的定义是从1开始相乘的。 2. 使用一个for循环,从`num`开始递减到1(包括1),每次迭代都将当前的`index`乘以`sum`,并将结果累加到`sum`中。这是计算阶乘的核心部分。 3. 在循环结束后,获取当前执行线程的引用,通过`Thread.currentThread().getName()`获取线程名称,然后输出线程名、基数以及计算出的阶乘结果。这个输出可以用来确认线程运行的具体情况。 在测试类`Test04`中,创建了三个`CountThread`对象,分别传入参数10、5和8。调用`start()`方法启动这些线程,每个线程将在独立的线程上下文中执行其run()方法。这意味着它们会并发地计算各自传入的数的阶乘,并打印出结果,展示多线程环境下不同线程的独立执行。 总结来说,这个例子展示了如何创建一个自定义线程类来执行特定任务(这里是阶乘计算),并通过重写`run()`方法实现线程的逻辑。同时,它也演示了如何在主程序中启动多个线程,并观察它们的并行执行。理解并熟练运用这种技术对于处理并发问题和优化程序性能至关重要。