Java线程浅析

本文介绍了Java中实现多线程的两种主要方式:通过继承Thread类和实现Runnable接口。对比了这两种方式的特点,并推荐在实际开发中优先选择实现Runnable接口的方法。此外,还介绍了synchronized关键字的作用及使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 线程实现两种方式

  • 继承Thread类;重写run接口
继承Thread类
class MyFirstThread extends Thread{
        private int i=0;
        @Override
        public void run() {
           // TODO Auto-generated method stub
           for(i=0;i<100;i++){
           System.out.println(Thread.currentThread().getName()+" "+i);
                }                
        }
}
实现Runnable接口
class MyFirstRunnable implements Runnable{
        private int i=0;
        @Override
        public void run() {
        // TODO Auto-generated method stub
        for(i=0;i<10;i++){
        System.out.println(Thread.currentThread().getName()+" "+ i);
                }
        }}

1.1 Thread 和Runnable两种实现方式

继承Thread接口或者实现Runnable两种方式
具体实现的时候
- Thread :

Thread firstThread= new MyFirstThread();
firstThread.start();

如使用.run,run方法调用并不会创建新的线程,而是在主线程中直接运行run方法,
- Runnable:

Runnable second= new MyFirstRunnable();
Thread thread=new Thread(second);
thread.start();

注意:类的单继承和多实现在很大程度上决定了线程的实现方法

2. 在程序开发中只要是多线程肯定永远以实现Runnable接口为主。

实现Runnable接口相比继承Thread类有如下好处:

  1. 避免继承的局限,一个类可以继承多个接口。
  2. 适合于资源的共享。

3. synchronzied

  • 概括就是:线程同步。可用来修改对象中的方法,将对象加锁。相当于不管哪一个线程A每次运行到这个方法,都要检查有没有其它正在用这个方法的线程B(或C D等),有则要等正在使用这个方法的线程运行完这个方法后再运行此线程A,没有则直接运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值