A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 linguoqun 于 2016-8-4 01:21 编辑

上课的时候老师演示了一个多线程的程序,我没听明白。不知道为什么要那样子写。而且讲到了不同线程会抢占执行所需的cpu资源,越听越迷糊了。请大神写一个多线程的程序,并简单讲一下其实现在原理。谢谢!

1 个回复

倒序浏览
百度搜的线程实例:2个人去银行取钱。
不同线程抢资源,是因为资源唯一。当一个线程占用资源时,另一个线程必须等待该线程释放资源,才能进行调用
public class Singleton3{
        public static void main(String args[]){
                Runner r=new Runner();//两个线程t1,t2共用一个接口实例
                Thread t1=new Thread(r);
                t1.setName("用户一");
                Thread t2=new Thread(r);
                t2.setName("用户二");
                t1.start();
                t2.start();
        }
}
class Runner implements Runnable{ //实现Runnable接口,重写线程方法run()
        private int count=2000;
        public void run(){
                synchronized (this) { //锁synchronized表示该块同时只允许一个线程访问
                        for(int i=0;i<4;i++){
                                count=count-100;
                                System.out.println("当前线程:"+Thread.currentThread().getName()+" ,银行存款的余额是: "+count);
                        }
                }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马