java多线程两种实现方式问题

刻意练习 2017-02-21 11:24:47
哪个方式好?实现的方式优于继承的方式
* ① 避免了java单继承的局限性
* ② 如果多个线程要操作同一份资源(或数据),更适合使用实现的方式
请问这里的第二个小点如何和理解?
...全文
233 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
科比请留步 2017-02-22
  • 打赏
  • 举报
回复
你这一个runnable的示例就明白了
zs808 2017-02-22
  • 打赏
  • 举报
回复
因为java有一个匿名类的概念。 匿名类的引入的目的是让java支持闭包,在同一个代码块中创建的闭包可以访问该代码块的自由变量(也就是带有final修饰的局部变量)。 例:
    public static void main( String[] args )
    {
    	final AtomicInteger a = new AtomicInteger(0);  //这个是“多线程要操作的同一份资源”,也是自由变量,需要带final修饰
    	for (int i = 0; i < 100; i++) {   //创建100个线程
        	new Thread(new Runnable() {	
    			@Override
    			public void run() {
    				//线程在这里操作了“a”这个资源,闭包使得其可以访问a,Runnable接口的可继承性质使得闭包可以实现
    				System.out.println(a.getAndIncrement());  
    			}
    		}).start();
		}
    }

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧