文档章节

多线程之方法分配

如比如比
 如比如比
发布于 2015/06/09 18:40
字数 288
阅读 122
收藏 3

import java.lang.reflect.Method;


public class Obj {

int obj_i = 11;

Integer obj_int = new Integer(obj_i);

    public void println(String str,boolean b){

    int fun_i = 99;

    Integer fun_int = new Integer(fun_i);

        try {

            System.out.println(str + "start");

            fun_i --;

            obj_i ++;

            if(b){

                Thread.sleep(2000);

                fun_i --;

                obj_i ++;

            }

            System.out.println(str + "end");

            System.out.println(str + "对象>" + this + ">" + System.identityHashCode(this));

            System.out.println(str + "对象>" + obj_i + ">" + System.identityHashCode(obj_i));

            System.out.println(str + "对象>" + obj_int + ">" + System.identityHashCode(obj_int));

            System.out.println(str + "方法>" + fun_i + ">" + System.identityHashCode(fun_i));

            System.out.println(str + "方法>" + fun_int + ">" + System.identityHashCode(fun_int));

            Method[] mds = this.getClass().getMethods();

            for (Method md : mds) {

            if ("println".equals(md.getName())) {

            System.out.println(str + "方法>" + md + ">" + System.identityHashCode(md));

            }

            }

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

    }

}

public class Test {


public static void main(String[] args) {

        final Obj obj = new Obj();

        Thread t3 = new Thread(new Runnable() {


            @Override

            public void run() {

                obj.println("c", true);


            }

        });

        Thread t4 = new Thread(new Runnable() {


            @Override

            public void run() {

            int i = 0;

//                for(int i = 0; i < 20; i++){

                    obj.println("d" + i, false);

//                }


            }

        });

        t3.start();

        t4.start();

        obj.println("main", false);

    }

}

结果

--------------------

mainstart

mainend

main对象>javay.test.Obj@759ebb3d>1973336893

main对象>12>1212899836

main对象>11>1174290147

main方法>98>1289696681

main方法>99>1285044316

main方法>public void javay.test.Obj.println(java.lang.String,boolean)>1607460018

cstart

d0start

d0end

d0对象>javay.test.Obj@759ebb3d>1973336893

d0对象>14>651376380

d0对象>11>1174290147

d0方法>98>1289696681

d0方法>99>672455766

d0方法>public void javay.test.Obj.println(java.lang.String,boolean)>741039500

cend

c对象>javay.test.Obj@759ebb3d>1973336893

c对象>15>1413515514

c对象>11>1174290147

c方法>97>1518828546

c方法>99>1589175178

c方法>public void javay.test.Obj.println(java.lang.String,boolean)>465204793


© 著作权归作者所有

共有 人打赏支持
如比如比
粉丝 125
博文 178
码字总数 286951
作品 0
日本
程序员
私信 提问
JVM内存区域与多线程

Java并发的机制的背后是Java虚拟机(JVM)的工作机制,本文从几个关于并发和多线程的疑问开始,引出Java内存区域的介绍,希望能帮助大家更好的理解Java并发机制。 1. 线程创建和切换的代价—...

登高且赋
2017/12/08
0
0
linux多线程网页截图-python

上一篇中(linux多线程网页截图-shell),使用shell多进程对大量的网站截图,大大减少了截图的时间。但慢慢的也发现了这种方式的弊端:每个进程分配的网站数量是相等的,有些进程截图较快,有...

cszer
2013/06/14
0
1
java虚拟机运行时的内存分类以及出现异常分析(jvm之一)

java虚拟机所管理的内存包括以下几个运行时数据区域: 方法区(Method Area):线程共享的,存放已被虚拟机记载的类信息、常量、静态变量等数据。“永久代(Permanent Generation)” 虚拟机...

zhengDavid
2012/06/13
0
0
iOS基础知识整理之修饰符的使用和区别

修饰符的使用和区别 在ARC环境下,修饰符有assign,strong,weak,copy,readwrite,readonly,nonatomic,atomic 属性修饰符对引用计数(retainCount)的影响 alloc为对象分配内存,retainC...

无忌不悔
2018/11/07
0
0
Android设计模式探讨 单例模式

核心原则:将构造函数私有化,通过一个静态内部方法来获取唯一实例. 单例模式的定义:确保某个类只有一个实例,避免产生多个对象来消耗过度资源。 下面介绍几种常见实现单例模式的方法。 饿汉...

wongstar
2017/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
6
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部