进程与线程

进程

定义:正在执行的一个程序。进程需要一定的资源(如CPU,内存,文件,I/O设备)来完成其任务,这些资源在创建进程或执行晋城市被分配。每个进程都有自己独立的一块内存空间。进程是大多是系统中的工作单元。

线程

定义:进程中执行的一条任务线。他们共享资源,每个线程都有自己的栈,程序计数器。

实现的方式:
1.编写一个类继承Thread,重写run方法,在主线程中用.start方法启动线程。


    //run方法就是线程要执行的任务方法
    //这个执行路径的触发方式,是调用start方法来启动一个线程
    public void run(){
        for(int i=0;i<10;i++){
            System.out.println("锄禾日当午"+i);
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
        /**继承thread
        * */
//        MyThread mt=new MyThread();
//        mt.start();
}

第二种方法:实现Runnable接口,重写run方法,在主线程中用.start方法启动线程。

    @Override
    public void run() {

        for(int i=0;i<10;i++){
            System.out.println("汗滴禾下土"+i);
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
/ /1。创建一个任务对象
        MyRunnable r=new MyRunnable();
        //2。创建一个线程,并分配一个任务
        Thread t=new Thread(r);
        //3。启动线程
        t.start();

第三种方法:实现Callable接口

class MyCallable implements Callable<Integer>{
        @Override
        public Integer call() throws Exception {
            for(int i=0;i<10;i++){
                Thread.sleep(100);
                System.out.println(i);
            }
            return 100;
        }
    }
 public static void main(String[] args) throws InterruptedException, ExecutionException {
        Callable<Integer> c=new MyCallable();
        FutureTask<Integer> task=new FutureTask<>(c);
        new Thread(task).start();
       Integer j= task.get();//如果用get方法,主线程先不参与,等获取到了值,才调用主线程
        System.out.println(j);
        for(int i=0;i<10;i++){
            Thread.sleep(100);
            System.out.println(i);
        }
    }

线程不安全问题:利用synchronized,锁机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值