- 浏览: 101014 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (209)
- http://docs.jpush.io/server/java_sdk/ (1)
- SpingMVC ModelAndView (1)
- Model (1)
- Control以及参数传递 (1)
- https://www.alipay.com/ (1)
- 检查指定的字符串列表是否不为空。 (1)
- 转自http://my.oschina.net/rpgmakervx/blog/505434 (1)
- 压缩js (1)
- 含包含 字母数字校验 (1)
- 判断浏览器是ie (1)
- fixbox (0)
- 转自http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html (1)
- http://dl2.iteye.com/upload/attachment/0113/2406/afbd8d53-dcad-3afc-8d78-41c1591 (0)
- IDEA (0)
- maven搭建 (0)
- http://www.jeasyuicn.com/api/docTtml/index.htm (1)
- 给tomcat添加运行内存: (1)
- JPUSH推送 (1)
- requestScope (0)
- oracle中plsql安装client10连接数据库 (1)
- 不需要安装oracle11g (1)
- tuikuan (1)
- http://www.hjxmall.com/index.php (1)
- java (1)
- 参考 (1)
- xml签名验签模拟程序 (1)
- 技术网站收集分享 (1)
- Java NIO提供了与标准IO不同的IO工作方式 ------来源于 http://www.iteye.com/magazines/132-Java-NIO (1)
- oracle表查询语句优化 (0)
- oracle (5)
- a (1)
- TenpayHttpClient (2)
- mongodb (1)
- http://www.qcloud.com/product/cmongo.html?utm_source=pcsem1&utm_medium=bdgj46&utm_campaign=baidu (1)
- SpringMVC整合MongoDB开发 (0)
- SpringMVC整合MongoDB开发 https://www.mongodb.org (1)
- Java 语言中常见问题总结 (1)
- 数据库SQL优化大总结 (1)
- 拦截器与过滤器的区别 (1)
- Struts2中拦截器与过滤器的区别及执行顺序 (1)
- Spring声明式事务管理与配置 (0)
- oracle OPERTION (1)
- java 高并发多线程开发 (1)
- Collection 与 map 接口相关集合 (1)
- 多线程开发实践 (1)
- JVM调优总结 转自 http://www.importnew.com/18694.html (1)
- redis 五种数据类型的使用场景 转自于 http://blog.csdn.net/gaogaoshan/article/details/41039581 (1)
- HttpWatch http基础 来自于http://blog.csdn.net/gaogaoshan/article/details/21237555 (1)
- maven 远程仓库 http://blog.csdn.net/gaogaoshan/article/details/40266779 (1)
- 生成Webservice客户端的4中方法 http://blog.csdn.net/gaogaoshan/article/details/8980775 (1)
- http://fgh2011.iteye.com/blog/1564283 (1)
- sleep和wait有什么区别 http://xiaowei2002.iteye.com/blog/2174188 (1)
- JDK中常用包及其类 常见的几种RuntimeException (1)
- Java的运行原理 (1)
- mybatis缓存的使用及理解 http://my.oschina.net/dxqr/blog/123163 (1)
- 软件架构设计分析 (1)
- redis技术总结 (3)
- java面试总结知识点 (1)
- ZooKeeper技术 (1)
- Hadoop (1)
- sso单点登录 (1)
- SpringIOC (1)
- 书签ssssssssssssssssssssss (1)
- spring事务的隔离级别 http://www.cnblogs.com/yangy608/archive/2011/06/29/2093478.html (1)
- 秒杀系统架构分析与实战 http://www.importnew.com/18920.html (1)
- oracle 连接plsql配置 (1)
- maven工程集成springmvc http://blog.csdn.net/fox_lht/article/details/16952683 (1)
- java类序列化与反序列化版本唯一号serialVersionUID (1)
- spring注解用法总结 (1)
- eclipse导入maven项目找不到资源文件方法 (1)
- dubbo (0)
- socket 网络编程 服务器与客户端 编程 (1)
- Thread与Runnable实现线程利用线程插队实现求和操作 (1)
- 生产者与消费者模式 (1)
- JAXB注解 java 关于xml的注解,自动生成xml文件 - @XML*** (1)
- xml 与JAVAbean转换 (1)
- MAP (2)
- decimalToString (1)
- 反编译插件 (0)
- 反编译插件 https://sourceforge.net/projects/jadclipse/?source=typ_redirect (1)
- AWX (1)
- 官网地址Dinp (1)
- public interface ExecutorService extends Executor (1)
- MAIN (1)
- 转自于 http://blog.csdn.net/lufeng20/article/details/24314381 (1)
- JaxbUtil (1)
- HttpXmlClient (0)
- Http post 请求 (1)
- URLDecoder (1)
- spdb (0)
- 订单号生成规则 (1)
- 距离0点毫秒数 (1)
- MyBatis存储过程调用java (1)
- Banks (1)
- 学习网址 (1)
- hots配置oracle数据库配置修改 (1)
- 支付宝文档 (1)
- Jadclipse (1)
- filter (0)
- Filter过滤器 (1)
- 工具类 fixbox (1)
- java quartz (0)
- java quartz 实现定时任务,每个礼拜一到礼拜五定时执行 (1)
- Thread (4)
- getResourceAsStream (1)
- BigData (1)
- 开源架构 (17)
- 架构 (0)
- 文件操作 (2)
- tools (20)
- 测试工具 (1)
- vm (1)
- mq (1)
- blog (1)
- 开源架构搭建技术 (6)
- JAVA细节技术点总结 (1)
- 优化技术 (1)
- LINUX命令使用 (1)
- spring (2)
- 大数据 (1)
- struts2 (1)
- python (1)
- pay (1)
- linux (1)
- 压力测试 (1)
- 代码检查插件 (1)
- 游戏端开发 (1)
- 微信开发相关 (1)
- 搜索引擎 (1)
- 网络技术 (1)
- 分布式部署 (1)
- 堆栈信息 (1)
最新评论
package cn.itcast.heima2;
/**
* java 线程同步锁处理
* 利用类的字节码文件对象唯一
*
* @author Administrator
*
*/
public class TraditionalThreadSynchronized {
/**
* @param args
*/
public static void main(String[] args) {
new TraditionalThreadSynchronized().init();
}
private void init(){
final Outputer outputer = new Outputer();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.output("zhangxiaoxiang");
}
}
}).start();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.output3("lihuoming");
}
}
}).start();
}
static class Outputer{
public void output(String name){
int len = name.length();
synchronized (Outputer.class)
{
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
public synchronized void output2(String name){
int len = name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
public static synchronized void output3(String name){
int len = name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
package cn.itcast.heima2;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* 多账户操作余额的增加与减少
* 每个线程共享数据,互相不影响对方操作,事物提交。
* 通过线程对应得名称为key保存对应操作线程对应得值。
* @author Administrator
*
*/
public class ThreadScopeShareData {
private static int data = 0;
private static Map<Thread, Integer> threadData = new HashMap<Thread, Integer>();
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
@Override
public void run() {
int data = new Random().nextInt();
System.out.println(Thread.currentThread().getName()
+ " has put data :" + data);
threadData.put(Thread.currentThread(), data);
new A().get();
new B().get();
}
}).start();
}
}
static class A{
public void get(){
int data = threadData.get(Thread.currentThread());
System.out.println("A from " + Thread.currentThread().getName()
+ " get data :" + data);
}
}
static class B{
public void get(){
int data = threadData.get(Thread.currentThread());
System.out.println("B from " + Thread.currentThread().getName()
+ " get data :" + data);
}
}
}
/**
* java 线程同步锁处理
* 利用类的字节码文件对象唯一
*
* @author Administrator
*
*/
public class TraditionalThreadSynchronized {
/**
* @param args
*/
public static void main(String[] args) {
new TraditionalThreadSynchronized().init();
}
private void init(){
final Outputer outputer = new Outputer();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.output("zhangxiaoxiang");
}
}
}).start();
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputer.output3("lihuoming");
}
}
}).start();
}
static class Outputer{
public void output(String name){
int len = name.length();
synchronized (Outputer.class)
{
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
public synchronized void output2(String name){
int len = name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
public static synchronized void output3(String name){
int len = name.length();
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
package cn.itcast.heima2;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* 多账户操作余额的增加与减少
* 每个线程共享数据,互相不影响对方操作,事物提交。
* 通过线程对应得名称为key保存对应操作线程对应得值。
* @author Administrator
*
*/
public class ThreadScopeShareData {
private static int data = 0;
private static Map<Thread, Integer> threadData = new HashMap<Thread, Integer>();
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
@Override
public void run() {
int data = new Random().nextInt();
System.out.println(Thread.currentThread().getName()
+ " has put data :" + data);
threadData.put(Thread.currentThread(), data);
new A().get();
new B().get();
}
}).start();
}
}
static class A{
public void get(){
int data = threadData.get(Thread.currentThread());
System.out.println("A from " + Thread.currentThread().getName()
+ " get data :" + data);
}
}
static class B{
public void get(){
int data = threadData.get(Thread.currentThread());
System.out.println("B from " + Thread.currentThread().getName()
+ " get data :" + data);
}
}
}
相关推荐
- **JVM (Java Virtual Machine)**:是Java虚拟机,负责执行字节码。 - **JRE (Java Runtime Environment)**:包含JVM和核心类库,用于运行Java程序。 - **JDK (Java Development Kit)**:包含了JRE以及编译、...
- 必须确保所有访问共享资源的线程都通过相同的锁进行同步。 **10. 线程的优先级** - 线程的优先级用于指示调度器应如何调度线程。 - Java中线程的优先级范围通常是1到10。 **11. 线程获取名称** - 线程名称可以...
- Java程序首先被编译成字节码(.class文件),然后由JVM解释执行。 - JVM负责内存管理、垃圾回收等底层工作,使得开发者可以专注于业务逻辑。 7. **学习Java注意的地方** - 理解面向对象的概念。 - 掌握异常...
- **线程同步**:使用 `synchronized` 关键字或者 `ReentrantLock` 类进行锁管理,防止多个线程同时访问共享资源导致的问题。 - **线程通信**:通过 `wait()` 和 `notify()` 方法实现线程间的协作。 #### 2. Java...
- **对象头初始化**:设置对象头的信息,如对象所属的类、锁状态标志、线程持有的锁等。 - **初始化**:执行构造器初始化成员变量。 ### Web技术 - 包括但不限于HTTP协议、Servlet、JSP等技术,用于构建Web应用程序...
- **BIO**: 同步阻塞IO,每个连接都需要一个线程处理。 - **NIO**: 同步非阻塞IO,基于缓冲区和选择器机制,减少了线程数量。 - **AIO**: 异步非阻塞IO,基于事件和回调机制,更高效。 **17. `Files`的常用方法都有...
6. **类文件结构**:了解.class文件的内部结构,包括魔数、版本号、常量池、字段表、方法表、属性表等,有助于理解JVM如何解析字节码。 7. **字节码指令集**:JVM执行的是字节码指令,如iconst、iload、...
- **程序计数器**: 是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。 - **Java虚拟机栈**: 描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作...
- Java虚拟机(JVM)是执行Java字节码的虚拟环境。 - JVM包含内存管理、垃圾回收、线程管理和安全机制等功能。 5. **视频加密传输** - 视频加密传输涉及SSL/TLS协议的应用,确保数据在传输过程中的安全性。 - ...
它详细阐述了Java虚拟机(JVM)的工作原理,包括内存管理、类加载机制、字节码执行以及垃圾回收等核心概念。深入理解这些知识点对于提升程序性能、解决运行时问题以及设计高效的应用程序至关重要。 1. **JVM架构** ...
- **程序计数器**:当前线程所执行的字节码的行号指示器。 - **本地方法栈**:为实现本地方法服务。 ### 3. SQL优化原理 SQL优化主要是提高查询效率的过程。主要包括以下方面: - **索引优化**:合理创建索引可以...
- `wait()`是`Object`类的方法,会使当前线程等待,直到被其他线程唤醒或达到指定时间,同时会释放对象锁。 8. **实现同步的方式** - 使用`synchronized`关键字。 - 使用`ReentrantLock`类。 - 使用`Semaphore`...
25. **同步代码块的锁对象**:在Java中,同步代码块通过指定一个锁对象来确保线程安全。这个锁对象可以是任意类型的对象,只要能唯一标识同步代码块即可。正确。 #### 存储过程与存储函数的区别 26. **存储过程与...
实现线程安全的方法包括同步机制(synchronized)、锁(Lock)、原子变量(Atomic类)等。 4. **抽象类与接口**: 抽象类是一种不能实例化的类,可以包含抽象方法和非抽象方法;接口则只包含抽象方法和常量,提供...
常见的同步机制包括信号量、互斥锁等。例如,信号量可以通过增加一个计数器来跟踪资源的可用性,并通过wait和signal操作来管理对资源的访问。 - **进程通信**:进程间通信(IPC)是指运行在同一系统上的不同进程之间...
类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,负责将类的字节码(.class文件或通过网络获取的字节流)转换为Java对象。Java类加载分为三个主要阶段:加载、验证和初始化。加载阶段,ClassLoader会从指定的...
1. 类文件结构:Java源代码经过编译后生成字节码文件,即.class文件,这是JVM直接运行的单元。每个类文件包含常量池、字段表、方法表、属性表等结构,这些内容定义了类的元数据。 2. 指令集:JVM使用一种简单的、栈...
它提供了运行Java应用程序所需的运行时环境,并负责管理内存、执行线程以及处理类文件结构等任务。深入理解JVM对于提高Java程序性能至关重要。 ### JVM的架构与组成 #### 类加载器系统 类加载器是JVM的重要组成...
Java程序的运行机制是先通过编译器将源代码(.java文件)编译成字节码文件(.class文件),再由JVM加载并执行。学习Java时,应注意其特定的语法格式,例如使用分号结尾、大括号表示代码块等。代码注释是程序员为了...