精华内容
下载资源
问答
  • volatile,synchronized有什么作用 首先volatile 和synchronized 都是为了解决并发状态下线程安全的问题而出现的关键字。 线程安全的两个关键:执行控制,内存可见 执行控制 的目的是控制代码执行(顺序)及是否可以...

    volatile,synchronized有什么作用

    首先volatile 和synchronized 都是为了解决并发状态下线程安全的问题而出现的关键字。

    线程安全的两个关键:执行控制,内存可见

    执行控制 的目的是控制代码执行(顺序)及是否可以并发执行。

    内存可见 控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。

    synchronized 修饰符

    ​ synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。

    解决:执行控制问题

    解决方式:

    1、阻止其它线程获取当前对象的监控锁,这样就使得当前对象中被synchronized关键字保护的代码块无法被其它线程访问,也就无法并发执行。

    (synchronized保护的代码块无法同时被多个线程操作,无法并发执行)

    2、synchronized还会创建一个内存屏障,内存屏障指令保证了所有CPU操作结果都会直接刷到主存中,从而保证了操作的内存可见性,同时也使得先获得这个锁的线程的所有操作,都happens-before于随后获得这个锁的线程的操作。

    (通俗来讲就是:先获得synchronized锁的线程的操作先执行,后面获得该锁的操作在之前的操作结束后再执行)

    实例

    public synchronized void showDetails(){ ....... }
    

    volatile 修饰符

    ​ volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

    一个 volatile 对象引用可能是 null。

    解决:内存可见性的问题,会使得所有对volatile变量的读写都会直接刷到主存,即保证了变量的可见性。这样就能满足一些对变量可见性有要求而对读取顺序没有要求的需求。

    对于volatile关键字,当且仅当满足以下所有条件时可使用:

    1. 对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值。

    2. 该变量没有包含在具有其他变量的不变式中。

    使用volatile关键字仅能实现对原始变量(如boolen、 short 、int 、long等)操作的原子性,但需要特别注意, volatile不能保证复合操作的原子性,即使只是i++,实际上也是由多个原子操作组成:read i; inc; write i,假如多个线程同时执行i++volatile只能保证他们操作的i是同一块内存,但依然可能出现写入脏数据的情况。

    实例

    public class MyRunnable implements Runnable
    {
        private volatile boolean active;
        public void run()
        {
            active = true;
            while (active) // 第一行
            {
                // 代码
            }
        }
        public void stop()
        {
            active = false; // 第二行
        }
    }
    
    

    ​ 通常情况下,在一个线程调用 run() 方法(在 Runnable 开启的线程),在另一个线程调用 stop() 方法。 如果 第一行 中缓冲区的 active 值被使用,那么在 *第二行* 的 active 值为 false 时循环不会停止。

    但是以上代码中我们使用了 volatile 修饰 active,所以该循环会停止。

    volatile和synchronized的区别

    • volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;

      synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。

    • volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的

    • volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性

    • volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。

    • volatile标记的变量不会被编译器优化;synchronized标记的变量可以被编译器优化

    展开全文
  • Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨...
  • 中的范例在Windows XP系统、Macintosh OS X系统和Linux系统上进行 了测试。只有为数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后,编译器在遵循C++标 准方面更严格。 对于本书中完整的程序,...
  • 中的范例在Windows XP系统、Macintosh OS X系统和Linux系统上进行 了测试。只有为数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后,编译器在遵循C++标 准方面更严格。 对于本书中完整的程序,...
  • 中的范例在Windows XP系统、Macintosh OS X系统和Linux系统上进行 了测试。只有为数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后,编译器在遵循C++标 准方面更严格。 对于本书中完整的程序,...
  • 中的范例在Windows XP系统、Macintosh OS X系统和Linux系统上进行 了测试。只有为数不多的几个程序会受编译器不兼容问题的影响。本书前一版面世后,编译器在遵循C++标 准方面更严格。 对于本书中完整的程序,...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    6.18.5 字典的关键字 6.19 相关模块 6.20 *拷贝Python对象、浅拷贝和深拷贝 6.21 序列类型小结 6.22 练习 第7章 映像和集合类型 7.1 映射类型:字典 7.1.1 如何创建字典和给字典赋值 7.1.2 如何访问字典...
  • LINGO软件学习

    2009-08-08 22:36:50
    在一个模型中,原始集是基本对象,不能再被拆分成更小组分。原始集可以由显式罗列和隐式罗列两种方式来定义。当用显式罗列方式时,需在集成员列表中逐个输入每个成员。当用隐式罗列方式时,只需在集成员列表中...
  • 数据挖掘在知识发现这一过程中的作用知识发现过程7.数据挖掘的主要任务 接上篇文章 更多本系列文章见专栏~ 5.数据挖掘的意义 举个栗子——流感预测 如何预测?——找出流感关键字眼 放进数学模型 预测得到流感的一些...


    接上篇文章
    更多本系列文章见专栏~

    5.数据挖掘的意义

    举个栗子——流感预测

    如何预测?——找出流感关键字眼 放进数学模型 预测得到流感的一些相关资料。

    比如03-08年的H1N1病毒 09年有几个工程师 用5000w个关键字&4.5亿个数学模型 进行“预测” 结果与真实结果吻合

    现有的数据挖掘技术 都是在事后进行“预测”

    举个栗子——零售商店降低库存成本

    用数据挖掘的方法 预测未来的商品销售量 降低库存成本。

    xxx零售商店 库存成本降低3.8%

    举个栗子——银行

    对不断增长的客户群进行分类 对每种产品找出最有价值的客户。

    汇丰银行 营销费用减少了30%

    然后——

    老师又来社会性发言惹

    “在银行 他们都不懂技术 就你懂 你就吊打他们

    他们更多是搞营销

    当然你要又能搞营销又能搞技术 那肯定更牛~“

    “银行不加班呐 轻松 一年拿20w 虽然不多但是轻松啊~”

    市场分析与管理

    • 针对营销——找出顾客群

    找出具有不同特征的顾客群

    • 风险控制——确定顾客随时间变化的购买模式

    看看顾客有什么变化可能导致风险

    • 交叉销售分析

    找到产品销售之间的关联、基于关联信息的预测

    • 顾客分类

    聚类或者分类 预测什么样的顾客购买什么样的产品

    • 识别顾客需求

    对不同的顾客识别最好的产品

    使用预测发现是什么因素影响新顾客

    • 提供汇总信息

    各种多维汇总报告

    统计的汇总信息

    综上 老师推荐了一手银行就业

    从事数据挖掘工作一般需完成什么任务

    并不是像传统印象中的一样 研究算法 更多

    而是更多 接触特征工程——更多地去处理数据

    数据决定了机器学习的上限 算法只是尽可能逼近这个上限

    这里的数据指的就是 经过特征工程得到的数据

    数据挖掘的定义

    从大量的数据中挖掘那些令人感兴趣的 有用的 隐含的 先前未知的 可能有用的模式或者知识。

    并非所有数据分析都是数据挖掘

    -查询处理

    -专家系统或是小型的数学计算/统计程序

    6.数据挖掘在知识发现这一过程中的作用

    数据挖掘是“知识发现”这一过程的核心

    知识发现过程

    在这里插入图片描述

    7.数据挖掘的主要任务

    下面简单介绍下数据挖掘的主要任务

    这块儿听讲有点走神

    从网上找了一下概念

    做个简单了解吧

    详细了解回头再细查~

    • 关联分析

    两个或两个以上变量的取值之间存在的规律性称为关联。

    ​ 关联分为简单关联、时序关联和因果关联。

    ​ 关联分析的目的是找出数据库中隐藏的关联网。

    一般用支持度可信度两个阈值来度量关联规则的相关性,还不断引入兴趣度、相关性等参数,使得所挖掘的规则更符合需求。

    • 聚类分析

    ​ 聚类是把数据按照相似性归纳成若干类别分类出来,同一类中的数据彼此相似,不同类中的数据则相异。

    • 分类算法

    ​ 分类其实就是找出一个类别的概念描述,代表了数据的整体信息,分类的内涵描述,并用描述来构造模型,一般用作于规则或决策树模式表示出来。

    ​ 分类是利用训练数据集中通过一定的算法而求得分类规则。

    ​ 分类可被用于规则描述和数据预测。

    • 预测

    ​ 通过预测利用历史数据找出变化规律,建立模型并由该模型对未来数据的种类及特征进行预测。

    ​ 预测关心的是精确度和不确定性因素,通常用预测方差来度量较为适合。

    • 时序模式

    ​ 通过时间序列搜索出的重复发生概率比较高的模式。与回归一样,它也是用己知的数据预测未来的数据值,但这些数据的区别是变量所处时间的不同而已。

    • 偏差分析

    ​ 在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。偏差检验的基本方法就是寻找观察结果与参照之间的差别。

    • 孤立点(离群点)分析

    eg:NBA球员数据分析

    展开全文
  • Python核心编程(中文第二版)

    热门讨论 2009-10-02 12:08:14
     6.18.5 字典的关键字   6.19 相关模块   6.20 *拷贝Python对象、浅拷贝和深拷贝   6.21 序列类型小结   6.22 练习   第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给...
  • 1.2.8 对大数据平台中的元数据管理是怎么理解的,元数据收集管理体系是怎么样的,会对大数据应用有什么样的影响 1.2.9 你理解常见如阿里,和友商大数据平台的技术体系差异以及发展趋势和技术瓶颈,在存储和计算两...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    35.java除了8种基本类型外,在虚拟机里还有哪一种,有什么作用? 36.除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式? 37.classloader中,JDK的API、Classpath中的同web-inf中的class加载方式有...
  • java面试宝典

    2013-02-28 16:04:01
    8、int 和Integer 有什么区别? 9 9、&和&&区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    8、int 和Integer 有什么区别? 9 9、&和&&区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、...
  • Thinking.In.Java

    2012-03-21 22:35:53
    这一章将解释try、catch、throw、throws以及finally等关键字在Java中的工作原理。并讲述什么时候应当“掷”出违例,以及在捕获到违例后该采取什么操作。此外,大家还会学习Java的一些标准违例,如何构建自己的违例,...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    问:有什么应用价值? 答: 本项目是一个能提高用户参与和娱乐程序项目,具有一定使用价值。 追求结果--钢琴练奏师 1.2 项目背景 传统音乐播放器功能单一,用户对音乐缺少参与感,本项目志在提高用户对...
  • 8.2.4 L-属性文法在自下而上分析中的实现 8.3 中间代码的形式 8.3.1 逆波壮大记号 8.3.2 三元式和树表表示 8.3.3 四元式 8.4 简单赋值语句的翻译 8.5 布尔表达式的翻译 8.5.1 布尔表达式的翻译方法 8.5.2 ...
  • 分布式数据库试题及答案.doc

    热门讨论 2010-12-29 16:46:29
    2.5. 数据库系统体系结构哪几类,每种类型特点是什么关键技术哪些? 12 2.6. 决策支持类应用与OLTP应用对于数据库系统要求哪些不同,支持前者的关键技术哪些,并简述之。 12 2.7. 面向对象数据库是...
  • java 面试题 总结

    2009-09-16 08:45:34
    Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨...
  • 编译原理(第2版)课件

    热门讨论 2009-03-28 15:27:49
    3.7 有关文法实用中的一些说明 3.7.1 有关文法的实用限制 3.7.2 上下文无关文法中的规则 3.8 典型例题解答 练习第4章 词法分析 4.1 词法分析程序的设计 4.1.1 词法分析程序与语法分析程序的接口方式 4.1.2 词法分析...
  • css入门笔记

    2018-05-15 14:58:57
    独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件声明样式,在使用网页引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件编写样式规则 3.在网页对样式文件进行引入 <...
  • 作用域问题 - 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字 用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块) Day07 - 字符...
  • 那么,.NET和C#有什么优点? .NET和C#重要性 为了理解.NET重要性,就一定要了解过去20年来出现许多Windows技术本质。尽管所有Windows操作系统在表面上看来完全不同,但从Windows 3.1(1993年引入)到Windows...
  • 本工程中的代码示例: a.volatile 不保证原子性 b.使用synchronized关键字,Lock,AtomicInteger来解决原子性的操作的问题 具体的详解可以在这里查看:...
  • JavaScript笔记

    2018-09-28 11:21:56
    若找到,返回1个数组,数组的每个元素是每个找到的匹配关键 | |--str.replace(regExp,"替换值")--替换str所有匹配的关键字 | 强调:replace方法不改变元字符串,只能返回新字符串。必须用变量接收新字符串 | |-...
  •  Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

关键模型中的关键字有什么作用