java进程线程,流,网络编程知识点17

程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象
进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程——生命周期。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域
线程:进程可进一步细化为线程,是一个程序内部的一条执行路径,若一个进程同时并行执行多个线程,就是支持多线程的,线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc)
一个java应用程序java.exe,至少有三个线程:main()主线程,gc()垃圾回收线程,异常处理线程,当然如果发生异常,会影响主线程

并行与并发:
并行:多个cpu同时执行多个任务,比如多个人同时做不同的事
并发:一个cpu同时执行多个任务,比如多个人同时做同一件事。

多线程的创建:方式一:继承于Thread类
1.创建一个继承于Thread类的子类
2.重写Thread类的run()-->将此线程执行的操作声明在run()中
3.创建Thread类的子类的对象
4.通过此对象调用start():启动当前线程,并调用当前线程的run()
问题一:不能通过直接调用run()方法启动线程
问题二:再启动一个线程,不可以还让已经启动start()的线程去执行,会报错
    我们需要重新创建一个线程对象(new MyThread())
class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i%2==0){
                System.out.println(i);
            }
        }
    }
}
public class ThreadTest{
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();
        System.out.println("hello");
    }
}

方式二:实现Runnable接口
1.创建一个实现了Runnable接口的类
2.实现类去实现Runnable中的抽象方法:run()
3.创建实现类的对象
4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
5.通过Thread类的对象调用start()

比较创建线程两种方式:
开发中优先选择实现Runnable接口的方式
原因:1.实现的方式没有类的单继承性的局限性
          2.实现的方式更适合用来处理多个线程有共享数据的情况
联系:public class Thread implements Runnable
相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中


测试Thread中的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值