- 浏览: 182177 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (99)
- 备忘录 (48)
- linux (19)
- oracle (10)
- shell (8)
- awk (1)
- java (48)
- just do it (29)
- more and more (46)
- common (29)
- 设计模式 (8)
- Java Web (9)
- Spring (0)
- Structs 2 (2)
- Java 高级 (4)
- 存储 (3)
- Virtual Box (1)
- ant (1)
- maven (0)
- 数据结构 (5)
- 算法 (5)
- javascript (1)
- ajax (1)
- jquery (1)
- xml (1)
- IBM (3)
- 转载 (3)
- English (2)
- html&css (0)
- hibernate (2)
- mysql (1)
- memcached (1)
最新评论
-
飞出四季做的茧:
kris_zhang 写道int temp = 0 ; ...
Java IO流 Zip文件的压缩和解压缩 -
kris_zhang:
int temp = 0 ; while(( ...
Java IO流 Zip文件的压缩和解压缩 -
welcomezhang:
学习了,这块自己还得深挖下
为什么HashMap不是线程安全的 -
fomeiherz:
这个写的最详细了,赞一个
Java的泛型类和泛型方法 -
beijishiqidu:
hanmiao 写道http://yangguangfu.it ...
Java设计模式之策略模式
题目如下:
四个线程1,2,3,4. 线程1,2对变量i加一. 线程3,4对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1 2...
运行结果如下:
参考自:http://ethanzhou.blog.51cto.com/6147883/1045683
四个线程1,2,3,4. 线程1,2对变量i加一. 线程3,4对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1 2...
package test01; import java.util.concurrent.LinkedBlockingQueue; public class ThreadUtil { private LinkedBlockingQueue<Integer> lbq = new LinkedBlockingQueue<Integer>( 4); private int count = 0; @SuppressWarnings("boxing") public ThreadUtil() { lbq.offer(1); lbq.offer(2); lbq.offer(3); lbq.offer(4); } @SuppressWarnings("boxing") public synchronized void inc(int content) { while (true) { int temp = lbq.peek(); if (temp == content) { break; } notifyAll(); try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.print(count + " "); count++; try { lbq.offer(lbq.take()); } catch (InterruptedException e) { e.printStackTrace(); } //print(); } @SuppressWarnings("boxing") public synchronized void dec(int content){ while (true) { int temp = lbq.peek(); if (temp == content) { break; } notifyAll(); try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.print(count + " "); count--; try { lbq.offer(lbq.take()); } catch (InterruptedException e) { e.printStackTrace(); } //print(); } private void print() { System.out.println("=====>"+lbq.toString()); } }
package test01; public class IncThread implements Runnable { private ThreadUtil tu; private int content; public IncThread(ThreadUtil tu, int content) { this.tu = tu; this.content = content; } @Override public void run() { while (true) { tu.inc(content); } } }
package test01; public class DecThread implements Runnable{ private ThreadUtil tu; private int content; public DecThread(ThreadUtil tu,int content) { this.tu = tu; this.content = content; } @Override public void run() { while (true) { tu.dec(content); } } }
package test01; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test01 { public static void main(String[] args) { ThreadUtil tu = new ThreadUtil(); ExecutorService exec = Executors.newFixedThreadPool(4); exec.submit(new IncThread(tu, 1)); exec.submit(new IncThread(tu, 2)); exec.submit(new DecThread(tu, 3)); exec.submit(new DecThread(tu, 4)); exec.shutdown(); } }
运行结果如下:
0 1 2 1 0 1 2 1 0 1 2 1 0 1 2 1
参考自:http://ethanzhou.blog.51cto.com/6147883/1045683
发表评论
-
为什么HashMap不是线程安全的
2016-06-15 22:27 2286序 最近因为项目的需求,经常会面试一些新人,也就会问他们 ... -
JAVA读取文件夹大小的几种方法实例
2016-04-24 15:39 771总是发现自己的C盘快满了,清理程序也不会帮我自己清理,然后 ... -
正确理解ThreadLocal
2015-10-06 16:52 1466最近打算总结下以前学的东西,但是由于文笔不好,先参考下网上 ... -
Java Regex - Matcher (java.util.regex.Matcher)
2015-03-01 13:59 881The Java Matcher class (java. ... -
Java Regex - Pattern (java.util.regex.Pattern)
2015-03-01 11:22 1573Java中的Pattern类是Java正则表达式API ... -
eclipse中查看jdk的源码
2014-11-23 11:43 1061最近一段时间跟jdk源码打交道的比较多,但是有的时候却是看 ... -
Struts2学习初设系列(一)之环境搭建
2014-07-20 22:47 1103已经毕业很长时间了,回过头来想想都不知道自己做了什么,由于 ... -
算法的时间复杂度分析
2014-07-20 11:14 16802.9.1 算法时间复杂度定义 在进 ... -
解析 Java 类和对象的初始化过程
2014-07-06 18:14 681问题引入 近日我在调试一个枚举类型的解析器程序,该 ... -
Java 中正确使用 hashCode 和 equals 方法
2014-07-05 18:17 685在这篇文章中,我将告诉大家我对hashCode和equals ... -
通过分析 JDK 源代码研究 Hash 存储机制
2014-07-05 17:22 646集合和引用 就像引 ... -
NIO 入门
2014-07-05 17:15 673在开始之前 关于本教程 新的输入/输出 (NIO) 库 ... -
利用AJax方式提交和Webservice完成页面输入汉字简体字回显繁体字
2014-06-29 18:05 1180最近一直在学习新的 ... -
How To Parse XML File Using XPath In Java
2014-06-29 11:59 1337最近一直在学习XML的Xpath解析方式,据说是一个很简单 ... -
Java排序算法之快速排序
2014-06-22 11:27 848快速排序使用分治法(Divide and conquer)策略 ... -
Java排序算法之简单选择排序
2014-06-21 22:31 799在网上搜索了很多的算法,貌似大家说的简单选择排序算法和直接选择 ... -
Java排序算法之冒泡排序
2014-06-21 20:22 1034冒泡排序算法的基本思想是:首先将第n-1个记录的关键字和第n个 ... -
Java排序算法之直接插入排序
2014-06-21 19:33 1232直接插入排序算法的基本思想是:把n个待排序的元素看成为 ... -
JAVA之桥接模式
2014-05-26 20:11 0桥模式:将某个问题抽象的不同形式分别与该问题的具体实现 ... -
Java数字小写转换为大写
2014-05-11 11:52 1467闲来无事,在网上搜索了一些面试的题目,开始练习下,下列代码的作 ...
相关推荐
在进行上机实验时,理解并熟练运用这些基本的多线程编程技术,能够帮助开发者编写出高效、稳定的多线程应用程序。在实际操作中,可能还需要关注线程安全的数据结构、异常处理以及线程局部存储(TLS,Thread Local ...
10. **并发与多线程**:随着计算机性能的提升,多线程编程成为必备技能。华为的试题可能包含线程同步、互斥锁、条件变量等并发编程的知识点。 11. **调试技巧**:源代码附带的题目可能需要考生具备一定的调试能力,...
"蚂蚁金服上机试题分析" 通过分析蚂蚁金服的上机试题,...这些试题涵盖了算法、数据结构、多线程、锁、异常设计、文本字符处理、逻辑思维、编程基础、代码风格等多个知识点,考察了应试者的编程能力和问题解决能力。
5. **多线程**:理解线程的概念,能创建并管理Thread对象,使用synchronized关键字和wait/notify机制解决并发问题。 6. **网络编程**:掌握Socket编程,实现客户端和服务端的通信。 7. **异常处理**:理解和运用try-...
本文将深入探讨WinForms在上机面试中的常见试题,并提供相关的知识点。 **1. WinForms基本控件** 面试中可能会涉及到对WinForms基本控件的理解和使用,例如Button、TextBox、Label、ListBox、ComboBox、...
操作系统部分可能涉及进程管理,要求设计多线程程序,或者实现内存管理功能。而在计算机网络部分,考生可能需要编写网络通信程序,理解TCP/IP协议栈的工作原理。 数据库管理的上机试题可能会要求设计数据库模式,...
4. **系统设计**:文件操作、网络编程、多线程、并发处理等。 5. **编程规范**:良好的代码风格、注释规范、错误处理等,这些都是上机考试中可能考察的实践技能。 6. **问题分析与解决**:如何理解和分析问题,...
- 进程同步与互斥:例如,临界区问题、信号量机制、管程等,这些都是多线程编程中防止资源竞争的重要概念。 - 内存管理:包括分页、分段、虚拟内存、页面替换算法等,理解这些原理对于优化系统性能至关重要。 - I/...
这份PDF资源包含了历年的二级Java上机考试题目,涵盖了基础语法、面向对象编程、异常处理、集合框架、IO流、多线程、网络编程等多个重要知识点。由于其内容详实且贴近实际考试,因此对于考生来说具有极高的实用价值...
多线程允许并发执行任务,提高程序性能。Thread类用于创建和管理线程,SyncLock关键字用于线程同步,防止数据竞争。 10. **WCF服务** Windows Communication Foundation(WCF)是.NET框架下的服务导向架构,用于...
9. **线程与并发**:Java的多线程编程是高级主题,考生可能需要理解线程的基本概念,如创建线程、同步机制(synchronized关键字、wait/notify机制)等。 通过分析这份08年的北大Java上机试题,不仅可以了解当时的...
8. **多线程**:Java提供了丰富的多线程支持,试题可能会考察Thread类的使用、实现Runnable接口、线程同步(synchronized关键字、wait()、notify()、notifyAll())以及线程池(ExecutorService)的使用。 9. **枚举...
具体到2008年的题目,可能会涵盖当年热门的技术点和研究方向,如那时的多线程编程、数据库操作、网络编程等。考生应结合历年真题进行练习,提升自己的编程速度和准确性,同时培养在有限时间内解决复杂问题的能力。 ...
5. **异步处理**:AsyncTask、Handler、Thread、Loader等多线程技术。 6. **权限管理**:Android 6.0以后的动态权限申请。 7. **Android Studio工具**:项目构建、调试技巧、Gradle脚本理解。 8. **Android App性能...
总的来说,"JAVA上机考试题"将涵盖Java语言的各个方面,从基础到高级,包括但不限于语法、面向对象编程、异常处理、集合框架、IO/NIO、多线程、API应用和算法实现。通过这些题目,考生可以全面检验自己的Java编程...
2010年的题目可能涉及到更复杂的问题,如图形处理、网络编程或者并发多线程等。考生需要掌握一些高级的C语言特性,以及对相关领域的理解,如图形库的使用、TCP/IP协议栈的基本概念等。 通过分析历年试题,考生可以...
南京理工大学计算机专业2021年的考研复试上机试题涵盖了多个关键知识点,这些知识点对于准备计算机专业考研的学生来说至关重要。以下是对这些知识点的详细解析: 1. 数据结构:上机试题通常会涉及到基础的数据结构...
理解这些概念有助于解决实际问题,例如设计一个高效的多线程程序或者优化内存分配。 四、计算机网络 网络知识也可能被考到,包括OSI七层模型、TCP/IP五层模型、网络协议(如TCP、UDP、HTTP)的工作原理,以及网络...
- 并发编程是多线程环境下解决问题的关键,熟悉synchronized、volatile、ThreadLocal等关键字,以及线程池的使用。 5. **IO流与NIO** - 文件操作是常见任务,理解字节流、字符流、缓冲流的区别和用法,以及文件...
这就要求对C++的STL(Standard Template Library)、多线程、异常处理等有深入理解。 为了准备这些上机题目,考生需要系统地复习C++的基础知识,包括但不限于变量、运算符、流程控制、函数、类和对象等。同时,要...