0831,0901学习笔记(特殊操作流、多线程)

特殊操作流

properties

  • 是一个Map体系的集合类
  • properties可以保存到流中或者在流中加载

常用方法:

//存储元素Object
pro.put("001","张三");
//添加String
p.setProperty("001", "张三");
//指定键搜索属性
p.getProperty("001"//该列表返回一个不可修改的键集,键及其对应的值是字符串
Set<String> names = p.stringPropertyNames();

多线程

进程

  • 正在运行的程序
  • 系统进行资源分配和调用的独立单位
  • 每一个进程都有自己的内存空间和系统资源

线程

  • 是进程中的单个顺序控制流,是一条执行路径
  • 单线程:一个进程只有一条执行路径
  • 多线程:一个进程只有多条执行路径

多线程的实现方式:

继承Thread类,定义一个MyThread类继承Thead类,在MyThread中重写run()方法,创建MyThread类的对象

public class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 70; i++) {
            System.out.println(i);
        }
    }
}
public static void main(String[] args) {
    MyThread my1 = new MyThread();
    MyThread my2 = new MyThread();

    //线程开始执行,java虚拟机调用此线程的run方法
    my1.start();
    my2.start();
}
  • run()方法:封装线程执行的代码,之间调用,相当于普通方法调用
  • strategic()方法:启动线程,java虚拟机调用此线程的run方法

设置和获取线程名称

public MyThread() {
}
//重写构造函数,写一个带参构造方法
public MyThread(String name) {
    super(name);
}

MyThread my1 = new MyThread("符集");
MyThread my2 = new MyThread("高忒");

//线程开始执行,java虚拟机调用此线程的run方法
my1.start();
my2.start();

或者

//Thread.currentThread()返回正在执行的线程对象
System.out.println(Thread.currentThread().getName());

线程调度
两种调度模型

  • 分时调度模型:线程轮流使用CPU,平均分配每个线程占用CPU的时间片。
  • 抢占式调度模型:优先让优先级高的线程使用CPU,如果优先级相同,会随机选一个,优先级高的线程获得CPU时间较长。
  • java使用抢占式调度模型。
//        System.out.println(Thread.MAX_PRIORITY);//最大优先级10
//        System.out.println(Thread.MIN_PRIORITY);//最小优先级1
//        System.out.println(Thread.NORM_PRIORITY);//默认优先级5
        //设置优先级
        th1.setPriority(9);
        th2.setPriority(5);
        th3.setPriority(1);

优先级高仅代表获取CPU时间片的几率高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值