Java Thread 之間 記憶體空間分析

SimpleThread.java

import com.abc.ChirpControllerDevice;

public class SimpleThread

{

public static void main(String[] args)

{

ChirpControllerDevice mC0 = null;

ChirpControllerDevice mC1 = null;

Thread thread = new Thread(new Runnable() {

public long getPID() {

String processName =

java.lang.management.ManagementFactory.getRuntimeMXBean().getName();

return Long.parseLong(processName.split("@")[0]);

}

public void run() {

while (true) {

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

System.out.println(e);

}

System.out.println("T" + ", PID:" + getPID() + ", TID:"+ Thread.currentThread().getId());

}

}

});

thread.start();

mC0 = new ChirpControllerDevice(88);

mC0.init();

mC1 = new ChirpControllerDevice(66);

mC1.init();

/*

while (true) {

try {

Thread.sleep(500);

} catch (InterruptedException e) {

System.out.println(e);

}

}

*/

// 主執行緒繼續進行其它工作........

// such...such....

// 現在主執行緒執行到這邊了,工作應該結束了

}

}

ChirpControllerDevice.java

package com.abc;

import java.util.concurrent.BlockingQueue;

import java.util.concurrent.LinkedBlockingQueue;

import java.util.concurrent.TimeUnit;

import java.lang.Math;

public class ChirpControllerDevice

{

private String TAG = "";

private boolean DEBUG = true;

private Object mSimulatorlocker = new Object();

private Thread mPollingThread;

private int mData;

public ChirpControllerDevice(int data)

{

mData = data;

}

public void init()

{

mPollingThread = new Thread(new ChirpPollingRunnable());

mPollingThread.start();

}

public class ChirpPollingRunnable implements Runnable

{

public ChirpPollingRunnable()

{

}

public long getPID()

{

String processName =

java.lang.management.ManagementFactory.getRuntimeMXBean().getName();

return Long.parseLong(processName.split("@")[0]);

}

@Override

public void run()

{

while (true) {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

System.out.println(e);

}

System.out.println("data:" + mData + ", address:" + this + ", PID:" +getPID() + ", TID:"+ Thread.currentThread().getId());

/*

System.out.println(Thread.currentThread().getStackTrace()[2].getClassName() +

"[" + Thread.currentThread().getStackTrace()[2].getMethodName() + " | " +

Thread.currentThread().getStackTrace()[2].getFileName() + ":" +

Thread.currentThread().getStackTrace()[2].getLineNumber() + "]");

*/

}

}

}

}

Makefile

JFLAGS = -g -cp ./classes/ -d ./classes

JC = javac

JVM= java

CLASSESDIR = classes

RM = rm -rf

SIMPLETHREAD = SimpleThread

.SUFFIXES: .java .class

.java.class:

$(JC) $(JFLAGS) $*.java

CLASSES = \

ChirpControllerDevice.java \

SimpleThread.java \

default: dir classes

dir:

mkdir -p $(CLASSESDIR)

classes: $(CLASSES:.java=.class)

@- echo "Done Compiling!!"

run:

$(JVM) -cp classes $(SIMPLETHREAD)

clean:

$(RM) *.class classes

javac -d . ChirpControllerDevice.java SimpleThread.java

java SimpleThread

java stl分解_Java Thread 之間 記憶體空間分析相关推荐

  1. 使用 RGBA4444 與 Dithering 減少記憶體用量

    在 2D 遊戲中,圖片一向在消耗的記憶體中占用最大的比例.尤其在記憶體資源寶貴的行動裝置上,為了減少記憶體使用量,縮減圖片的大小常常是最有效的方法. 大部份的遊戲會使用材質壓縮 (texture co ...

  2. 解開32位元Win 7記憶體4GB限制

    解開32位元Win 7記憶體4GB限制: ReadyFor4GB 檔案下載:ReadyFor4GB https://sites.google.com/a/joytown.tw/bai-jia-zhi/ ...

  3. 解決系統提示記憶體不足的方法

    很多人的桌機或筆記本電腦會提示win7 記憶體不足,網上查找解決辦法,大多是建議加大,2G不夠加到4G,4G不夠加到8G.這根本沒有從根本上解決問題.其實,您應該先排查您的電腦是否有以下問題: 一.剪 ...

  4. [ Linux ] 釋放記憶體指令(cache) - 轉載

    1. [Linux]釋放記憶體指令(cache) http://jeffreyy.pixnet.net/blog/post/84333764-%E3%80%90linux%E3%80%91%E9%87 ...

  5. [FPGA][DE0] Qsys 加入 FLASH 記憶體 方法及步驟

    如何在DE0中設定Qsys加入4MB Flash設定步驟: 步驟1. 先在Qsys中加入Generic Tri-State Controller.其設定如圖1及圖2所示. 圖1 基本設定 圖2 Mod ...

  6. (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows)...

    Abstract 由於記憶體便宜,不少人購買新NB時,基於一次到位原則,一次將X61的記憶體加到4GB攻頂,雖然X61的硬體抓的到4GB,但卻沒保證軟體的作業系統可以抓到4GB,只要是32位元的Win ...

  7. (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows)

    原文地址为: (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows) Abstract 由於記憶體便 ...

  8. 如何開啟3GB switch讓32位元的Windows 7、Vista或XP能使用更多記憶體

    如何開啟3GB switch讓32位元的Windows 7.Vista或XP能使用更多記憶體?   10 / 21 / 2011 32位元作業系統有記憶體容量限制,受限於硬體更僅辨識2.5GB~3.2 ...

  9. java 手动线程调度_Java Thread 多线程 操作线程

    5.线程的创建和启动 A.继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B.创建Thread子类或是Runnable的实现类,即创建的线程对象:不 ...

最新文章

  1. LeetCode简单题之按既定顺序创建目标数组
  2. angularJs的学习笔记-01(创建项目)
  3. Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
  4. 挖矿的电费自由日——矿工为何每个月总有那么几十天闷闷不乐
  5. 9月——都已经9月了还不好好刷题?。。
  6. 关于思科三层交换机设置中继链路(trunk)报错!
  7. Python练习 | Python之图像的基本操作和处理
  8. 使用SAP PI将CRM的Opportunity同步到C4C去
  9. Interllij IDEA如何加快启动时间
  10. Rational Rose :从用例图开始
  11. .Net程序猿玩转Android开发---(8)表格布局TableLayout
  12. GO语言的进阶之路-流程控制
  13. 一个程序员眼中的项目经理
  14. C++ 灰度图像伪彩色处理
  15. window 脚本文件.bat获取最高权限拷贝文件及c++调用.bat文件示例
  16. python蓝屏_plt.绘图()导致windows出现蓝屏
  17. php课程设计感想,设计心得体会
  18. 美标Class压力等级与MPa等级换算关系 by阿斯米合金
  19. 自媒体怎么赚钱!自媒体怎么做收益比较高!
  20. 预测师的随想系列二:记一次囚徒博弈游戏

热门文章

  1. C语言课后习题(57)
  2. docker可以把应用及其相关的_声学中的相干性及其相关应用!
  3. 正则不等于一个字符串_王晓阳 | 物理主义不等于物理学主义——表述物理主义的一个新方案...
  4. linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤
  5. 学习笔记:2019 张小龙在微信公开课上的演讲
  6. C语言中动态内存分配的本质是什么?
  7. 从源码分析创建线程池的4种方式
  8. 互联网短平快下,DevCloud如何支撑软件开发的“转型”?
  9. 看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点
  10. 关于GO语言,这篇文章讲的很明白