`
lvwenwen
  • 浏览: 953913 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

Java多线程与并发库高级应用(传智播客)

阅读更多

--------------------------------- Java多线程与并发库高级应用
------------------------------------------- 1.传统线程机制的回顾
1.多个线程对同一个数据进行操作(加synchronized()),要线程同步,静态方法只有跟字节码关联,类的字节码是万能的,字节码只有一份 1.线程同步的方法
public void output(String name){ int len = name.length(); synchronized
(Outputer.class) { for(int i=0;i queue = new ArrayBlockingQueue(1); //信号灯 final
Semaphore semaphore = new Semaphore(1); final SynchronousQueue queue = new
SynchronousQueue(); //操作集合的存取时,用CopyOnWriteArrayList,可以获取condition,lock private
CopyOnWriteArrayList keys = new CopyOnWriteArrayList(); 1.
总之,要同步互斥的几段代码最好是分别放在几个独立的方法中,这些方法再放在同一个类中,这样比较容易实现它们之间的同步互斥和通信 *
面试题需求:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序 * 根据题目要求,很明显要用到线程同步(synchronized)
* 用到的知识点,同步synchronized()方法, 外部类调用内部类的方法 * ThreadTest1 tt=new ThreadTest1(); Inc
inc= tt.new Inc(); * Thread t=new Thread(inc); //传一个runnable对象inc 进去
1.内部类特点:1.内部类中不允许定义静态变量2.在内部类中访问外部类中与内部类同名的实例变量用外部类名.this.变量名
3.如果内部类中没有与外部类同名的变量,则可以直接用变量名访问外部类变量 4.可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
condition 阻塞队列 队列:先进先出 blockingQueueTest.java 阻塞队列 成员变量只有创建类的实例才赋值
静态代码块只有在类加载的时候执行,只会执行一次 匿名构造方法有几个构造方法就调用几次 死锁:都堵住了,方法不能执行 内部类可以访问外部类的对象
线程互斥一定是同一个对象 外部类怎样调用类部类的方法 AtomicInteger 任何线程死了,怎样再启动
多态::“一个接口,多种实现”,就是同一种事物表现出的多种形态。 ReadWriteLock ReentrantReadWriteLock Condition
线程的同步,安全,什么时候用线程异步 同步的数据是安全的还是不安全的 concurrent ExecutorService 线程池
数组就是连续的一段内存,列表不是一段连续的内存 如果线程被多个应用访问,用ConcurrentHashMap 要实现同步(synhronized)
接受的对象(监视器对象必须是同一个,即传入的对象(this)) 同步即互斥,进了这里,就不能进那里 Clooections
--->synchronizedMap --->map 的线程同步 Collections.synchronizedMap(null) HashSet
与HashMap 有什么联系 HashSet 内部使用的是hashMap实现 只是用hashMap key,没有value 使用new Runnable
更面向对象 Runnable 表示一个对象,Runnable表示代表任务的那个对象 Test 同步队列 编译器把代码翻译成字节码 编译器优化 String a
=new String("a"); a与b不是同一个对象 String b=new String("a"); a="1"+""; b="1"+"";
a与b是同一个对象 只有满足synchronize(this) 这个this代表的对象是同一个是才互斥,否则不互斥 也就是不是线程同步
迭代的过程中不能对集合进行操作 用CopyOnWriterArrayList可以解决迭代过程中不能对集合进行 操作的问题
java5线程并发库里面的CopyOnWriterArrayList
分享到:
评论

相关推荐

    Java入门到精通视频教程.课件.代码,30套Java开发项目代码,Java多线程与并发库高级应用视频教程,及电子书

    黑马+传智 Java入门到精通视频教程+课件+代码,30套Java开发项目代码,Java多线程与并发库高级应用视频教程,及电子书,面试题,开发工具等

    《Java 基础入门(传智播客)》_高清中文版pdf 网盘链接

    根据提供的文件信息,我们可以推断出这是一本...以上内容是根据《Java 基础入门(传智播客)》可能包含的核心知识点进行的总结与扩展。对于初学者而言,掌握这些基本概念和技术将为后续深入学习Java打下坚实的基础。

    传智播客2015年JAVA基础班视频教程(全套)

    Java编程语言作为一款广泛应用的面向对象的编程语言,其学习资源丰富多样,其中"传智播客2015年JAVA基础班视频教程(全套)"便是为初学者提供的一套系统化的学习材料。这套教程出自传智播客,一个在IT教育领域具有较...

    Java 基础入门_传智播客.pdf

    本资料《Java基础入门_传智播客.pdf》是针对初学者精心编写的教程,旨在帮助读者快速掌握Java编程的基础知识。 首先,Java的基础部分包括语法结构、数据类型和变量。Java有两大类数据类型:基本数据类型(如整型、...

    传智播客.毕老师.java基础.java.源代码

    9. **多线程**:Java内置了对多线程的支持,通过Thread类或实现Runnable接口可以创建并运行多个线程,实现并发执行。 10. **网络编程**:Java提供了丰富的API用于网络编程,如Socket和ServerSocket类,可以构建...

    java基础ppt--传智播客的内容

    Java支持多线程编程,通过Thread类和Runnable接口实现。线程同步是避免数据竞争的关键,包括synchronized关键字、wait()、notify()和notifyAll()方法,以及Lock接口和相关的并发工具类。 6. **集合框架**: 集合...

    传智播客-黑马32期Java视频

    4. **多线程**:线程的创建与同步,死锁、活锁、阻塞队列等并发编程概念。 5. **I/O流**:文件操作、网络通信,了解字节流、字符流、对象流。 6. **Java EE**:Servlet、JSP、MVC模式、Spring框架、MyBatis等企业级...

    传智播客Java培训毕向东Java基础课件01-08高清pdf

    6. **多线程**:Java支持多线程编程,这部分会讲述线程的创建与管理、同步机制(如synchronized关键字、wait/notify机制)、线程池等,这对于编写高效并发程序至关重要。 7. **IO(Input/Output)**:Java的IO流...

    传智播客Java培训ppt大全

    - **多线程**:了解线程的概念,同步与互斥,线程池的使用。 - **反射机制**:动态获取类信息,创建对象,调用方法。 - **设计模式**:如单例、工厂、观察者、装饰器等,提升代码复用性和可维护性。 3. **Java ...

    Java经典面试题 传智播客

    "Java经典面试题 传智播客"是一份专为Java初级程序员准备的面试资源,旨在帮助求职者掌握必要的Java基础知识,以便在面试中表现出色。这份资料可能涵盖了Java语法基础、面向对象编程、异常处理、集合框架、多线程、I...

    传智播客毕向东JavaSE课件

    毕向东,作为知名IT教育机构传智播客的讲师,他的JavaSE课程深受初学者欢迎,旨在帮助学习者掌握Java编程语言的基础知识,为进阶开发打下坚实基础。 在"传智播客毕向东JavaSE课件"中,我们可以期待涵盖以下几个核心...

    传智播客JAVA面试题

    - 解释线程同步的概念,讨论synchronized关键字的使用、锁的升级机制(从偏向锁到重量级锁)以及其在多线程中的作用。 - 讨论Java并发工具类,如ConcurrentHashMap、ThreadPoolExecutor、CountDownLatch、...

    传智播客JAVA开发20G全套视频教程

    6. **线程编程**:多线程的概念,线程的创建与同步,以及并发编程中的各种工具类。 7. **网络编程**:套接字编程,客户端/服务器模型,以及HTTP协议的基础知识。 8. **反射机制**:在运行时动态获取类的信息和调用...

    java传智播客学习笔记系列

    传智播客是一家知名的教育机构,提供各种IT技术的培训课程,包括Java。这篇学习笔记系列结合了Java的基础知识和进阶概念,旨在帮助学习者系统地理解和掌握Java编程。 1. **Java基础** - **变量与数据类型**:Java...

    传智播客毕向东_Java基础源代码 java基础源码

    12. **多线程**:Java提供了Thread类和Runnable接口来支持多线程编程,可以实现并发执行任务,提升程序性能。 13. **反射**:反射机制允许程序在运行时动态获取类的信息并操作类的对象,增强了程序的灵活性。 14. ...

    传智播客Java_SE基础毕向东老师全程笔记

    根据给定的文件信息,以下是对“传智播客Java_SE基础毕向东老师全程笔记”的详细知识点总结: ### 第一章:编程基础 1. **Java的特性和优势**: - **简单性**:Java设计简洁,易于理解和学习。 - **面向对象**:...

    传智播客——D盘全部教程下载目录

    - 《Java5_多线程》 - 《Java3_异常处理》 - 《Java2_数据结构》 - 《Java1_基础知识》 - **学习目标**:这些课程旨在帮助学生理解Java语言的核心概念,包括类和对象、异常处理、数据结构以及并发编程等内容。 ...

    传智播客_张孝祥_java基础教程\1\Java培训教程教学课件.rar

    13. **多线程**:Java内置对多线程的支持,通过创建Thread对象或实现Runnable接口,可以实现并发执行。 14. **枚举(enum)**:Java 5引入的新特性,用于创建一组固定的常量。 15. **注释**:单行注释(//)、多行...

    传智播客javase全套笔记

    6. **多线程**:Java提供了内置的多线程支持,学习线程的创建、同步、互斥以及并发控制策略是提升程序性能的关键。 7. **反射机制**:Java反射允许在运行时检查类、接口、字段和方法的信息,是实现动态代理、插件化...

    传智播客 入学考试题及个人答案(11题)

    多线程则是并发编程的基础,包括Thread类、Runnable接口以及同步机制(synchronized关键字、wait/notify等)。 【JavaScript部分】 JavaScript作为前端开发的主要语言,其三道题目可能覆盖了DOM操作、BOM处理、...

Global site tag (gtag.js) - Google Analytics