欢迎转载,若转载请注明出处!!!
我的博客还有Java课程期末知识复习和总结呦~~~
教学代码看这里!!!MyInsCode-CSDN博客
函数题
6-1 jmu-Java-07多线程-Thread
编写MyThread类继承自Thread。创建MyThread类对象时可指定循环次数n。
功能:输出从0到n-1的整数。 并在最后使用
System.out.println(Thread.currentThread().getName()+" "+isAlive())
打印标识信息
裁判测试程序:
import java.util.Scanner;
/*这里放置你的答案,即MyThread类的代码*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Thread t1 = new MyThread(Integer.parseInt(sc.next()));
t1.start();
}
}
输入样例:
3
输出样例:
0
1
2
标识信息
在本题中我们需要写出一段Java程序,使得可以在test代码段中成功运行。
class MyThread extends Thread
{
private int n;
public MyThread(int n)
{
this.n=n;
}
public void run()
{
for(int i=0;i<n;i++)
{
System.out.println(i);
}
System.out.println(Thread.currentThread().getName()+" "+isAlive());
}
}
最终输出结果:
6-2 jmu-Java-07多线程-互斥访问
定义Account
类
属性:private int balance
构造方法:public Account(int balance)
// 初始化balance属性
方法:
getter方法void deposit(int money)
//存钱,在余额的基础上加上moneyvoid withdraw(int money)
//取钱,在余额的基础上减去money
注意:裁判程序中可能有多个线程通过deposit
或withdraw
方法同时存取Account对象的balance属性。
裁判测试程序:
import java.util.Scanner;
/*你的代码,即Account类的代码*/
/*系统已有代码,无需关注*/
输入样例:
0 100 10 100 10
输出样例:
0
0
函数体:
class Account
{
private int balance;
public Account(int balance)
{
this.balance=balance;
}
public synchronized void deposit(int money)
{
if(money>0)
{
balance+=money;
}
}
public synchronized void withdraw(int money)
{
if(money>0)
{
if(money<balance)
{
balance-=money;
}
else
{
balance=0;
}
}
}
public int getBalance()
{
return balance;
}
}
6-4 jmu-Java-07多线程-PrintTask
编写PrintTask类实现Runnable
接口。
功能:输出从0到n-1的整数(n在创建PrintTask对象的时候指定)。并在最后使用
System.out.println(Thread.currentThread().getName());
输出标识信息。
裁判测试程序:
import java.util.Scanner;
/*这里放置你的答案,即PrintTask类的代码*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
PrintTask task = new PrintTask(Integer.parseInt(sc.next()));
Thread t1 = new Thread(task);
t1.start();
sc.close();
}
}
输入样例:
3
输出样例:
0
1
2
标识信息
函数体代码:
class PrintTask implements Runnable
{
private int n;
public PrintTask(int n)
{
this.n=n;
}
public void run()
{
for(int i=0;i<n;i++)
{
System.out.println(i);
}
System.out.println(Thread.currentThread().getName());
}
}
最终测试结果:
编程题:
7-1 创建一个倒数计数线程
创建一个倒数计数线程。要求:1.该线程使用实现Runnable接口的写法;2.程序该线程每隔0.5秒打印输出一次倒数数值(数值为上一次数值减1)。
输入格式:
N(键盘输入一个整数)
输出格式:
每隔0.5秒打印输出一次剩余数
输入样例:
6
输出样例:
6
5
4
3
2
1
0
代码段程序:
import java.util.*;
class Count implements Runnable
{
private int n;
public Count(int n)
{
this.n=n;
}
public void run()
{
while(true)
{
System.out.println(n--);
try {
Thread.sleep(500);
}
catch(Exception e) {}
if(n==-1)break;
}
}
}
public class Main {
public static void main(String args[])
{
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
Count co=new Count(n);
Thread t=new Thread(co);
t.start();
}
}
最终输出结果: