文档章节

多线程之方法分配

如比如比
 如比如比
发布于 2015/06/09 18:40
字数 288
阅读 120
收藏 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
Android设计模式探讨 单例模式

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

wongstar
2017/12/14
0
0
iOS基础知识整理之修饰符的使用和区别

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

无忌不悔
11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

升压变换器 Boost

工作特点 输入输出极性相同。 开关管 MOS 和负载构成并联,在MOS 导通时,电流通过 L 滤波,电源对 L 充电。 当 MOS 断开时,L 向负载及电源放电,输出电压将是 Ui+U L ,达到升压的目的。 ...

colinux
27分钟前
1
0
OSChina 周一乱弹 —— 你狗命在我手上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 小小编辑:推荐歌曲,《I.W.A.B.N》- Lil Ghost 《I.W.A.B.N》- Lil Ghost 手机党少年们想听歌,请使劲儿戳(这里) 几天没见, 大王(@罗马的...

小小编辑
29分钟前
169
6
轻量级 memcached缓存代理 twemproxy实践

本文内容脑图如下: 文章共 533字,阅读大约需要 2分钟 ! 概 述 twemproxy(nutcracker) 是 Twitter开源的轻量级 memcached / redis 代理服务器,本质就是一个集群管理工具,主要用来弥补 ...

CodeSheep
49分钟前
7
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部