Java--初学--线程


多线程基础:
进程与线程----
    什么是进程(进程是操作系统中的运行的任务,包含一个或多个执行单元是线程,一个进程至少有一个线程)
    什么是线程(进程的顺序执行流,线程是高并发性,多线程有多个执行部分可以同时执行)
并发原理----
    使用时间片进行控制线程并发
线程状态----

线程操作API:
Thread.currentThread方法(获取当前线程名称----[线程名称,线程等级,线程守护方法名])
获取线程信息(
long getld():获取该线程的标识符
String getName():返回该线程的名称
int getPrority():返回线程的优先级1-10
Thread.state getState():获取线程的状态
Boolean isAlive():测试线程是否属于活动状态

线程的优先级
Thread.MIN_PRIORITY
Thread.MAX_PRIORITY
Thread.NORM_PRIORITY

package cn.edu.sqxy.day16;

public class TestGetNameAndGetId {
    public static void main(String[] args) {
        Thread t1 = new Thread();
        t1.setPriority(Thread.MIN_PRIORITY);
        System.out.println("t1:"+t1.getName());
        System.out.println("t1:"+t1.getId());
        System.out.println("t1等级:"+t1.getPriority());
        Thread t2 = new Thread();
        t2.setPriority(Thread.NORM_PRIORITY);
        System.out.println("t2:"+t2.getName());
        System.out.println("t2:"+t2.getId());
        System.out.println("t2等级:"+t2.getPriority());
        Thread t3 = new Thread("ydd的线程");
        t3.setPriority(Thread.MAX_PRIORITY);
        System.out.println("t3:"+t3.getName());
        System.out.println("t3:"+t3.getId());
        System.out.println("t3等级:"+t3.getPriority());
    }
}

守护线程:
void setDeaemon(blloean)设置为守护线程
GC(java中垃圾回收机制)
Gc是运行的一个线程

sleep方法:睡眠阻塞状态

package cn.edu.sqxy.day16;
//测试守护线程
public class TestDaemon {
    public static void main(String[] args) {
        Thread d = new Thread(){
            @Override
            public void run(){
                while(true){
                    System.out.println("后台线程");
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
//        设置为守护线程
        d.setDaemon(true);
//        启动
        d.start();
//        main阻塞5秒
        try{
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("main线程结束啦");
    }
}
public class TestSleep {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(300,300);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Mypanel panel = new Mypanel();
        frame.add(panel);
        Thread t = new Thread(panel);
        t.start();
    }
}
class Mypanel extends JPanel implements Runnable{

    @Override
    public void run() {
//        创建对象
//        JPanel panel = new JPanel();
//        设置大小
        this.setSize(300,300);
//        设置标识符
        int i = 0;
//        死循环
        while (true){
            i=i==0?1:0;
            if (i == 0){
                this.setBackground(Color.green);
            }else {
                this.setBackground(Color.white);
            }
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

yield方法:出让CPU时间片
join:void joint():等待当前线程结束

package cn.edu.sqxy.day16;

public class TestJoin {
    public static void main(String[] args) {
        Thread t1 = new Thread(){
            @Override
            public void run(){
                for (int i = 0 ;i<10;i++){
                    System.out.println("t1:已下载图片:"+i*10+"%");
                }
                System.out.println("t1:下载完成");
            }
        };
        Thread t2 = new Thread(){
            @Override
            public void run(){
                System.out.println("t2:等待图片下载完成");
                try {
                    t1.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("t2:显示图片");
            }
        };
        t1.start();
        t2.start();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_张仲元

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值