java stl分解_Java Thread 之間 記憶體空間分析
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 之間 記憶體空間分析相关推荐
- 使用 RGBA4444 與 Dithering 減少記憶體用量
在 2D 遊戲中,圖片一向在消耗的記憶體中占用最大的比例.尤其在記憶體資源寶貴的行動裝置上,為了減少記憶體使用量,縮減圖片的大小常常是最有效的方法. 大部份的遊戲會使用材質壓縮 (texture co ...
- 解開32位元Win 7記憶體4GB限制
解開32位元Win 7記憶體4GB限制: ReadyFor4GB 檔案下載:ReadyFor4GB https://sites.google.com/a/joytown.tw/bai-jia-zhi/ ...
- 解決系統提示記憶體不足的方法
很多人的桌機或筆記本電腦會提示win7 記憶體不足,網上查找解決辦法,大多是建議加大,2G不夠加到4G,4G不夠加到8G.這根本沒有從根本上解決問題.其實,您應該先排查您的電腦是否有以下問題: 一.剪 ...
- [ Linux ] 釋放記憶體指令(cache) - 轉載
1. [Linux]釋放記憶體指令(cache) http://jeffreyy.pixnet.net/blog/post/84333764-%E3%80%90linux%E3%80%91%E9%87 ...
- [FPGA][DE0] Qsys 加入 FLASH 記憶體 方法及步驟
如何在DE0中設定Qsys加入4MB Flash設定步驟: 步驟1. 先在Qsys中加入Generic Tri-State Controller.其設定如圖1及圖2所示. 圖1 基本設定 圖2 Mod ...
- (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows)...
Abstract 由於記憶體便宜,不少人購買新NB時,基於一次到位原則,一次將X61的記憶體加到4GB攻頂,雖然X61的硬體抓的到4GB,但卻沒保證軟體的作業系統可以抓到4GB,只要是32位元的Win ...
- (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows)
原文地址为: (原創) 如何讓ThinkPad X61在32位元Windows XP『用』到4GB記憶體? (NB) (ThinkPad) (OS) (Windows) Abstract 由於記憶體便 ...
- 如何開啟3GB switch讓32位元的Windows 7、Vista或XP能使用更多記憶體
如何開啟3GB switch讓32位元的Windows 7.Vista或XP能使用更多記憶體? 10 / 21 / 2011 32位元作業系統有記憶體容量限制,受限於硬體更僅辨識2.5GB~3.2 ...
- java 手动线程调度_Java Thread 多线程 操作线程
5.线程的创建和启动 A.继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B.创建Thread子类或是Runnable的实现类,即创建的线程对象:不 ...
最新文章
- LeetCode简单题之按既定顺序创建目标数组
- angularJs的学习笔记-01(创建项目)
- Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
- 挖矿的电费自由日——矿工为何每个月总有那么几十天闷闷不乐
- 9月——都已经9月了还不好好刷题?。。
- 关于思科三层交换机设置中继链路(trunk)报错!
- Python练习 | Python之图像的基本操作和处理
- 使用SAP PI将CRM的Opportunity同步到C4C去
- Interllij IDEA如何加快启动时间
- Rational Rose :从用例图开始
- .Net程序猿玩转Android开发---(8)表格布局TableLayout
- GO语言的进阶之路-流程控制
- 一个程序员眼中的项目经理
- C++ 灰度图像伪彩色处理
- window 脚本文件.bat获取最高权限拷贝文件及c++调用.bat文件示例
- python蓝屏_plt.绘图()导致windows出现蓝屏
- php课程设计感想,设计心得体会
- 美标Class压力等级与MPa等级换算关系 by阿斯米合金
- 自媒体怎么赚钱!自媒体怎么做收益比较高!
- 预测师的随想系列二:记一次囚徒博弈游戏
热门文章
- C语言课后习题(57)
- docker可以把应用及其相关的_声学中的相干性及其相关应用!
- 正则不等于一个字符串_王晓阳 | 物理主义不等于物理学主义——表述物理主义的一个新方案...
- linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤
- 学习笔记:2019 张小龙在微信公开课上的演讲
- C语言中动态内存分配的本质是什么?
- 从源码分析创建线程池的4种方式
- 互联网短平快下,DevCloud如何支撑软件开发的“转型”?
- 看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点
- 关于GO语言,这篇文章讲的很明白