Java继承抽象类Thread,实现接口Runnable,倒计时,线程休眠,静态变量【诗书画唱】


使用继承抽象类Thread方式创建一个线程,打印1到100之间的奇数设置其名称为线程1

package thread;
public class ji {
public static void main(String[ ] args) {
ThreadClass ThreadName=new ThreadClass() ;
ThreadName. setName("线程1");
// 用setName设置名字,
// 用getName获取设置或本身就已经有的名字等。
ThreadName.start();//:这里用start固定名的
// 方法开启一个线程后,会执行run方法
// ThreadName. run();(这里是直接调用run方法。)
}}
// 并没有启动线程
class ThreadClass extends Thread{
//类继承Thread后,
// 里面要重写run(这个方法名是固定的)方法:
@Override
public void run() {
for(int i=0;i<100;i++){
if(i%2==1){
System. out.println("线程名:"+getName()+"; " + i) ;
}}}}


使用实现接口Runnable方式创建一个线程,打印1到100之间的奇数,设置其名称为线程2

package thread;
public class jieKou {
public static void main(String[ ] args) {
ThreadClass2 ThreadName=new ThreadClass2() ;
Thread Thread=new Thread(ThreadName, "线程2");
// 也可以用“Thread. setName("线程2");”来重命名。
Thread.start() ;
}}
class ThreadClass2 implements Runnable{
@Override
public void run() {
for(int i=1;i<=100;i++){if(i%2==1){
System. out . println
("线程名:"
+Thread.currentThread().getName ()+"; "+i);}}}}


使用线程休眠制作一个10秒的倒计时

package thread;
public class daoJiShi {
public static void main(String[] args) {
ThreadClass3 ThreadName=new ThreadClass3() ;
Thread Thread=new Thread(ThreadName, "线程3");
Thread.start() ;
}}
class ThreadClass3 implements Runnable{
public void run() {
for(int i=10;i>0;i--){
try {
Thread. sleep(1000);
// 1000毫秒=1秒
}
// interrupted
// 英[ˌɪntəˈrʌptɪd]
// 美[ˌɪntəˈrʌptɪd]
//阻断
// 当一个线程处于阻塞状态下(例如休眠)的情况下,
// 调用了该线程的interrupt()方法,
// 则会出现InterruptedException。
catch (InterruptedException e) {
// TODO Auto-generated catch block
e. printStackTrace( );
}
System. out. println(i);
}
}}


创建一个线程,定义静态变量i=0,使用线程循环100次,统计i的值,创建2个线程循环100次,统计i的值

package thread;
public class staticBianLiang {
public static void main(String[ ] args) {
ThreadClass4 ThreadClass1=new ThreadClass4 () ;
ThreadClass4 ThreadClass2=new ThreadClass4();
Thread Thread1=new Thread(ThreadClass1, "线程1");
Thread Thread2=new Thread(ThreadClass2, "线程2");
Thread1.start();Thread2.start();
}}
class ThreadClass4 implements Runnable{
//静态的单词:可以被多 个类所共享
static int num=0;
public void run() {
for(int i=0;i<100; i++){
num++;
System. out . println("线程名:"
+Thread.currentThread().getName ()+"; "+num) ;
}}}





