生命游戏-多线程
Posted 王六六同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生命游戏-多线程相关的知识,希望对你有一定的参考价值。
将生命游戏"demo进行重构,包括如下子任务:
1、将arr数组改造为GameOfLife类的成员变量,并在构造函数中对其初始化
2、countLivingNeighbors、 getNextVal upd ateNextState. printMatrix改造为GameOfLife的成员函数
3、尝试将该demo移植到独立线程下执行:每隔若干毫秒执行一次更新并打印提示:
import java.util.*;
// 必须定义 `ShowMeBug` 入口类和 `public static void main(String[] args)` 入口方法
public class ShowMeBug
public static void main(String[] args)
GameOfLife life = new GameOfLife(arr);
Thread t = new Thread(life);
while(true)
t.sleep(1000);
t.start();
System.out.println("Hello World!");
class GameOfLife implements Runnable
public final int[][] arr;
public GameOfLife(int[][] arr)
this.arr = arr;
public void updateNextState(int[][] arr)
int m = arr.length;
int n = arr[0].length;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
arr[i][j] = getNextVal(arr,i,j);
public int getNextVal(int[][] arr,int i,int j)
countLivingNeighbors(arr,i,j);
public int countLivingNeighbors(int[][] arr, int i,int j)
.....
public void printMatrix()
for(int i=0;i<arr.length;i++)
for(int j=0;j<arr[0].length;j++)
System.out.println(arr[i][j] + " ");
System.out.println();
@Override
public void run()
updateNextState(arr);
printMatrix();
以上是关于生命游戏-多线程的主要内容,如果未能解决你的问题,请参考以下文章