当前位置:范文大全 > 公文范文 > 高一历史知识点总结必修一

高一历史知识点总结必修一

发布时间:2021-10-13 09:45:06

高一历史知识点总结必修一 本文关键词:知识点,高一,必修,历史

高一历史知识点总结必修一 本文简介:高一历史知识点总结必修一必修一第一单元古代中国的政治制度一、分封制目的:巩固国家政权内容:①分封对象——王族、功臣、先代的贵族,②受封者义务——服从周王的命令、镇守疆土、随从作战、交纳贡赋、朝觐述职.③受封者权利——职位世袭、设置官员、建立武装、征派赋役.作用:①加强了周天子对地方的管辖.②扩大了统

高一历史知识点总结必修一 本文内容:

高一历史知识点总结

必修一

必修一

第一单元古代中国的政治制度

一、分封制

目的:巩固国家政权

内容:①分封对象——王族、功臣、先代的贵族,②受封者义务——服从周王的命令、镇守疆土、随从作战、交纳贡赋、朝觐述职.③受封者权利——职位世袭、设置官员、建立武装、征派赋役.

作用:①加强了周天子对地方的管辖.②扩大了统治区域,开发了边远地区;③形成对周王室众星捧月一般的政治格局;④周成为一个延续数百年的强国.但诸侯国有相当大的独立性,埋下分裂割据的隐患.

二、宗法制

定义:宗法制是依据父系血缘关系的亲疏来维系政治等级、巩固统治的一种社会制度.

特点:嫡长子继承制

宗法制与分封制的关系:分封制和宗法制是西周政治制度的两大支柱,互为表里.

影响:宗法制保证了贵族在政治上的垄断和特权地位,也有利于统治集团内部的稳定和团结.

中国早期政治制度特点:以宗法制为核心,带有浓厚的部族色彩.

三、秦的统一:

公元前221年,秦灭六国,秦王嬴政建立了中国历史上第一个统一的、封建专制主义中央集权的国家——秦朝.

四、秦朝专制主义中央集权政治制度的形成

内容:①建立“皇帝”称号,确立皇帝制度.全国的政治、经济、军事大权由皇帝总揽,从中央到地方的主要官吏由皇帝任免.

②设置三公九卿中央官制:丞相——帮助皇帝处理全国政事;御史大夫——监察百官;太尉——负责全国军务.

③在地方推行郡县制:郡的长官是郡守,县的长官称县令或县长,均由皇帝直接任免.

影响:巩固了国家的统一,促进了社会的安定和经济文化的发展,奠定了中国两千多年政治制度的基本格局,对中华民族的形成起了重要的作用.

消极作用:加强对人民的压榨,容易导致暴政,造成阶级矛盾的激化.

五、秦朝巩固统一的措施:

①颁布秦律、统一法令;②统一货币、度量衡;③统一文字;④修建驰道、灵渠;⑤修筑万里长城;组织移民.

秦朝灭亡的原因是秦的暴政

六、汉武帝加强中央集权

背景:汉初郡国并行,出现王国问题

措施:汉景帝平定“七国之乱”;汉武帝实行推恩令

作用:解决了王国问题,加强中央集权,巩固和发展了大一统局面.

唐末至五代出现了藩镇割据局面

七、宋初中央集权的强化

措施:①军事上:杯酒释兵权,解除朝中大将和地方节度使的兵权;加强禁军、强干弱枝.②行政上:派文臣任地方长官;设通判负责监督.③经济上:地方赋税一小部分作为地方开支,其余全部由中央掌控.

影响:①加强了中央对地方的控制,消除了藩镇割据现象.②造成冗官、冗兵、冗费,埋下了“积贫积弱”的祸根.

八、唐实行三省六部制

唐朝中央设中书省、门下省和尚书省,分别负责决策、审议和执行.三省的长官都是宰相,分散了相权.尚书省下设吏、户、礼、兵、刑、工六部,确立并完善了三省六部的管理体制.

九、元朝实行行省制度

背景:疆域空前扩大

概况:中央设中书省;地方设十个行省和宣政院辖区

意义:加强了对全国的管辖;加强了中央集权,巩固了统一.是中国行省制的开端,对后世影响深远.

十、选官、用官制度的变化

朝代制度

汉代察举制

魏晋南北朝九品中正制

隋唐宋—清朝科举制

十一、明清君主专制的加强

明太祖调整中央和地方官制,加强中央集权:①废丞相,设六部;废行省,设三司.②内阁的创立.实质:是君主专制强化的产物.

清朝雍正帝设军机处(上传下达)——君主专制制度发展到顶峰

第二单元古代希腊罗马政治制度

一、希腊的政治制度

古希腊民主政治产生的原因:①独特的地理环境与小国寡民的国情;②海外贸易和工商业的发达.

城邦的基本特征是:小国寡民和独立自主

雅典民主政治的确立历程:梭伦改革——为雅典民主政治奠定基础;克利斯提尼改革——确立雅典民主政治;伯利克里改革——把雅典民主政治推向顶峰.

雅典民主政治的特点:人民主权、轮番而治.

雅典民主政治的评价:

积极方面:①实行民主政治,社会相对公正一些,有利于社会安定.②促成了雅典政治、经济和文化的高度繁盛.③为后来欧美资产阶级建立民主政治提供了一定的借鉴.

消极方面:①妇女、奴隶和外邦移民没有政治权力,真正能够享受到民主的只是少数人,实质是奴隶主阶级的民主.②过于泛滥的民主,容易导致无政府主义的泛滥.

二、罗马法

1、罗马法的起源和发展历程:

早期的罗马国家只有习惯法,没有成文法.成文法诞生标志是《十二铜表法》的颁布.

公民法:适用范围仅限于罗马公民,用来调整罗马公民之间的关系的罗马法律,被称为公民法

万民法:在古罗马对外扩张的过程中,逐渐形成普遍适用于罗马统治范围内一切自由民的法律,即“万民法”

6世纪,《民法大全》标志罗马法体系的最终完成.

2、罗马法的评价

积极方面:①罗马法的制定和实施维系了帝国的统治,稳定了社会秩序.②罗马法是欧洲历史上第一部比较系统完备的法典,极大影响了近代欧美资本主义国家的立法司法制度;是近代资产阶级反封建的有力武器.

局限性:维护奴隶制度.

第三单元近代西方资本主义政治制度的确立与发展

一、英国革命

背景:根本原因:斯图亚特王朝实行专制统治阻碍了英国资本主义经济的发展

过程:1640年英国爆发革命.期间,处死了国王查理一世,成立共和国.但斯图亚特王朝复辟.1688年光荣革命,标志英国革命的完成.

二、英国的君主立宪制:

特点:①保留国王,实际上“统而不治”的地位,作为国家的象征而存在.②国家的最高权力在议会,实行代议制.议会是国家最高立法机关,内阁掌握行政权并对议会负责.

1689年《权利法案》的颁布是正式确立的标志.18世纪责任制内阁逐步形成.

三、美国政府的建立:

1776年,英属北美13个殖民地独立,美国诞生.独立之初的美国实际上是13个州的松散联盟(即邦联).1789年联邦政府成立,华盛顿当选为美国第一任总统.19世纪中期,美国形成民主党、共和党轮流执政的格局

四、美国1787年宪法:

1787年在费城召开制宪会议通过了一部联邦宪法.

评价:①是世界上第一部较完整的资产阶级宪法.②加强了国家权力,实践了三权分立原则,体现资产阶级民主精神.局限性:承认黑人奴隶制,印第安人没有公民权,妇女地位低下.

五、艰难的法兰西共和之路:

1789年法国大革命和第一共和国的建立;1870年第三共和国的确立.

六、法兰西第三共和国宪法:

1875年初,国民议会通过了法兰西第三共和国宪法.

意义:从法律上正式确立了共和政体(议会制共和国),标志着法兰西共和政体的最终确立

七、德意志的统一:

俾斯麦领导下,普鲁士通过三次王朝战争,完成了德国统一.1871年,建立了统一的德意志帝国.

八、德意志的二元制君主立宪制:

特点:皇帝不是虚位,而是握有实权.皇帝和首相掌握国家的大权.议会对政府没有监督权

第四单元近代中国反侵略、求民主的潮流

一、两次鸦片战争

鸦片走私与虎门销烟:英国为了扭转对华贸易逆差,向中国走私鸦片.林则徐领导禁烟运动,1839年6月,虎门销烟.

鸦片战争爆发的根本原因:英国资本主义发展的需要,要求扩大海外市场和大量掠夺原料

两次鸦片战争的起止年代:1840-1842年,1856年—1860年

中国近代史上第一个不平等条约《南京条约》的签订时间及其内容:1842年.《南京条约》内容:割香港岛给英国;赔款2100万元;开放广州、厦门、福州、宁波、上海为通商口岸;协定关税.

鸦片战争使中国开始沦为半殖民地半封建社会.

1860年英法联军洗劫和焚毁圆明园

1858年《天津条约》规定了外国公使进驻北京、增开十口通商、外国军舰商船可以在长江各口岸自由航行等

1860年《北京条约》规定了增开天津为商埠、割九龙司等

沙俄侵占我国北方150多万平方公里领土

英国侵占我国领土香港地区(条约及地图)经过:1842年,中英《南京条约》割占香港岛;1860年中英《北京条约》割占九龙司地方一区;1898年强行租借新界.

二、太平天国运动

1851年洪秀全发动金田起义,永安建制初步建立政权,1853年太平天国定都天京,正式建立与清廷对峙的政权.通过北伐、西征,1856年太平天国在军事上达到全盛时期.

1856年发生天京内讧.1864年曾国藩指挥湘军攻陷天京,太平天国运动失败.

洪仁

篇2:高中英语必修五笔记文章知识点

高中英语必修五笔记文章知识点 本文关键词:知识点,五笔,必修,高中英语,文章

高中英语必修五笔记文章知识点 本文简介:高中英语必修五笔记文章知识点Unit1whatdoyouknowaboutgreatscientists?highexpectationsarethekeytoeverything远大的理想是开启万物的钥匙facethemusic面对命运对你的不公平beabsorbedin全神贯注于,专心致志于be

高中英语必修五笔记文章知识点 本文内容:

高中英语必修五笔记文章知识点

Unit

1

what

do

you

know

about

great

scientists?

high

expectations

are

the

key

to

everything

远大的理想是开启万物的钥匙

face

the

music

面对命运对你的不公平

be

absorbed

in全神贯注于,专心致志于

be

lost

in

thought想得出神

沉思于…

be

engaged

in

从事于…忙于

be

concentrated

on

集中注意力…

一…就…

The

moment…瞬间

instant

立刻

the

minute

second

片刻

make

a

suggestion

give

an

advice

make

the

investigation

look

into

调查

浏览

slow

down

减缓

relate

to

有关

涉及

two

athe

deaths

另外两个死者

link

to

有关联系

die

out

灭绝

die

of

死于

die

from死于

his

career

came

to

an

end

他的事业结束了

develop

a

severe

illness

染上很严重的疾病

make

a

new

career

创立新的事业

apart

from

除了…

two

more

example

=another

two另外两个

make

a

face

做鬼脸

make

one’s

way

to

转向

向…出发,朝…走去

make

up

one’s

mind下定决心

make

friends

make

the

bed

make

sure确定

make

room

for为腾空间

lead

to

领导

only

修饰主语不倒装

状语要倒装

If

only

但愿

要是

Only

if只有

要到装

Eg.:

only

if

you

use

this

way,can

you

make

sense

有意义

讲得通

in

a

sense

有点

make

sense

of

搞清楚

弄明白

in

no

sense

绝不

;不可能

22.

at

times

时不时

有时

At

a

time

每一次

From

time

to

time

时而不时的

At

one

time

曾经一度

For

the

time

being

暂时

Ahead

of

time

提前

All

the

time

一直

At

all

times总是

随时

At

any

time

无论何时

At

no

time

决不

Out

of

time

不合时宜的

23.suspect

sb

of

do

sth怀疑某人做某事

24.look

into

调查

25.look

ahead

向前看

展望未来

26.look

around

for

参观

四处看看

27.

look

away

from

把目光…从移开

28.look

back

(at)

回顾

回忆

29.look

out

(for)

留心

当心

30.look

up

to

尊敬

钦佩

31.look

though

检查

浏览

32.go

down

下降

33.slow

down

慢下来

放慢速度

33.knock

down

击倒

34.tear

down

拆毁

拆除

Unit

2

keep

your

eyes

open

睁大你的眼睛

consist

of由…组成

leave

out省去

不考虑

遗漏

divide

into

分成

compare

A

with

B

与…比

compare

A

to

B

把A比作B

prepare

to

准备

work

out

做出

解决

设计出

计算出

锻炼开采完

发展

进行

work

on对起作用;企图影响或说服,忙于

work

in

在…工作

work

off

渐渐消除

处理

排除

卖掉

发泄

asked

the

boss

on

the

phone

通过电话

a

furnished

house

with

all

modern

conveniences

一个带家具的房子有所有的现代方便的设施

familiar

with熟悉

worried

about

the

time

available担心时间不够

make

a

list

of

列出关于…的清单

on

special

occasions

在特殊的场合

the

four-hundred-year-old

uniform

有四百年历史的制服

定语

不加“s”

set

the

world

time设置世界时间

on

either

side

of

the

line

在线的两端

fall

asleep入睡

with

delight

十分喜悦的

Unit

3

suffer+pain

/lost

遭受疼痛

suffer

from

+illness

remind

sb

to

do

sth提醒某人做某事

as

a

result单独放句首应道原因状语

as

a

result

of

=n./n(短语)

feel

unsettled

感到不安

unsettled

problem为解决的问题

unsettled

weather

易变化的天气

just

as

正当

make

the

necessary

adjustment

to

做必要的调整(to

介词)

be

back

on

one’s

feet

恢复

a

small

room

nearby

for

a

rest

在一个附近的小房子里休息

Nearby

做后置定语

In

the

neighborhood

在附近

press

down

向下按压

fasten

the

safety

belt

系上安全带

lost

sight

of

看不见

在视野之外

at

first

sight

初次看到

乍一看

in

all

directions

=in

every

direction

四面八方

sweep

up

席卷

show

sb

into

带某人进入

be

made

of

由什么制成

be

made

into

制成

be

made

from由所制成的

用于原材料不易看出的场合

provide

with

提供

flash

a

switch

按下按钮

switch…around

转变

改变

on

the

timetable

在时刻表上

as

if

by

magic

好像变魔术一样

slide

into

滑进

run

into

偶遇

撞上

overcome

the

difficulties

克服困难

bend

one’s

mind/effort/thought

to

集中做

bend

the

rules

放宽规则

通融

be

astonished

at对感到惊讶

connect

to

联系

a

long

passage

一个长长的通道

a

desert

island

一个荒凉的小岛

force

to

do

强迫

perform

task实施任务

my

mind

began

to

wander

我的思维开始遐想

be

greedy

for对…渴望

贪婪

in

five

days将来

five

days

late

之前

Unit

4

be

to

strongly

influence

his

life

as

a

journalist

an

assistant

to

an

experienced

journalist

一个有经验的记者的助手

go

out

on

a

article

外出采访

submit

the

article

提交文章

take

with戴上

be

eager

to

do

期待做

update

my

skill更新我的技能

take

an

amateur

course

参加业余课程

acquire

all

the

information获得所有的信息

have

a

good

“nose”

for

a

story

tell

the

whole

truth

讲诉所有的事实

inform

sb

of

sth

通知某人某事

keep

in

mind

记住

make

sure

确定

depend

on

取决于…

a

trick

of

the

trade职业诀窍

accuse

of

控告

score

goal得分进球

so

as

to

为了

deny

doing

拒绝

It’s

a

dilemma

because

the

footballer

could

have

demanded

damages虚拟语气

要求赔偿

be

proved

right

被证明是对的

look

forward

to

期待

as

the

old

saying

goes

就像我们所说的一样

ahead

of

前面

set

to

work

开始工作

get

down

to开始认真去做

着手去做

pass

sth

to

sb

把某物传给某人

check

the

evidence

核对证据

a

good

front

page

article

头版头条

get

the

fact

straight

直接得出事实

Unit

5

a

temporary

form

of

help暂时的帮助

fall

ill

生病

fall

asleep

入睡

fall

behind

落后于…

fall

out

解散

fall

into

掉入

养成(坏习惯)

fall

silent

=fall

into

silence陷入沉寂

get

injured

受伤

If

possible

如果可能

happen

to

发生

first

aid

急救

an

essential

part

of

一个不可缺少的部分

act

as

a

barrier

against

disease

扮演一个低于疾病的屏障

act

as

担当其重要作

prevent

from

阻止

keep

from

不让

避免

stop

from

阻止

protect

from

保护

维护

save

from

拯救

挽救

get

burned烧伤

in

the

treatment

of

burns在治疗的过程中

a

variety

of

各种许多

within

a

day

or

two在一两天之内

mildly

swollen

轻微肿胀

mildly

painful

轻微疼痛

turn

white

when

pressed当压的时候变白

watery

surface

似水的表面

extremely

painful

极度的疼痛

nerves

are

damaged

神经受损

take

off

脱掉

起飞

事业成功

over

and

over

again

一次又一次

all

over

again

再次

重新

again

and

again

反复的

再三

time

and

again

多次

一再的

now

and

again

不时的

间或

once

again

再次

squeeze

out

榨出

break

the

blisters

弄破水泡

iron

clothes

熨衣服

pick

off摘下

脱掉

采摘

caught

fire

着火

be

doing…when

正在做突然

be

about

to

do…when

即将做…突然

be

on

the

point

of

doing…when

正要去做.突然

has/have/had

done…when

刚刚…突然

at

the

Lifesaver

Awards

在救生员大会上

a

shocking

knife

attack震惊的刀伤

at

a

ceremony

在颁奖大会上

put

one’s

hands

on

找到

the

injuries

to

the

hands

手上的伤口

apply

pressure

to

the

wounds

按住伤口

make

a

difference

有影响

perform

first

aid

on

sb

对某人实施急救

in

place

放对位置

适当的

electric

shock

触电

电休克

icy

water

冰水

leave

out

省略

忽略

遗漏

sit

up端坐

晚睡

熬夜

坐正

be

fit

for

适合

胜任

stab

in/into

刺入

constantly

interrupted

by

applause

不断地被掌声打断

It

is

said

that…=be

said

to

do…据说…

the

population

/information/advice

/price

of

insist

on

坚持

强调

强烈要求

hold

in

place固定就位

put

back放回原处

回拨,向后退

篇3:Java多线程、并发编程知识点总结

Java多线程、并发编程知识点总结 本文关键词:知识点,并发,多线程,编程,Java

Java多线程、并发编程知识点总结 本文简介:1、线程的状态1.1创建线程的两种方式,接口和线程类。利用接口的好处:更好的体现面向对象的思想,可以避免由于Java的单继承特性而带来的局限;增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;(同步问题)适合多个相同程序代码的线程区处理同一资源的情况。(关注微信订阅号:javaedu)1

Java多线程、并发编程知识点总结 本文内容:

1、线程的状态

1.1创建

线程

的两种方式,接口和线程类。利用接口的好处:更好的体现面向对象的思想,可以避免由于Java的单继承特性而带来的局限;

增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;(同步问题)适合多个相同程序代码的线程区处理同一资源的情况。(关注微信订阅号:javaedu)

1.2线程就绪等待调度运行start()方法。

1.3线程的中断

这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。

1.4、线程挂起和恢复(挂起还拥有对象锁,死锁)

线程的挂起和恢复实现的正确方法是:通过设置标志位,让线程在安全的位置挂起

1.5

利用多线程模拟同步运行用jion方法,mThread.jion()表示该线程运行完毕后,在运行调用它的线程。

1.6

sleep

休眠

当线程执行Thread.sleep()时,它一直阻塞到指定的毫秒时间之后,或者阻塞被另一个线程打断;

1.7stop线程停止

stop方法突然终止线程(持有这些锁必定有某种合适的理由——也许是阻止其他线程访问尚未处于一致性状态的数据,

突然释放锁可能使某些对象中的数据处于不一致状态)

1.8线程可以阻塞于四种状态:(参考资料:t.cn/RA5iKhq)

当线程执行Thread.sleep()时,它一直阻塞到指定的毫秒时间之后,或者阻塞被另一个线程打断;

当线程碰到一条wait()语句时,它会一直阻塞到接到通知(notify())、被中断或经过了指定毫秒时间为止(若制定了超时值的话)

线程阻塞与不同I/O的方式有多种。常见的一种方式是InputStream的read()方法,该方法一直阻塞到从流中读取一个字节的数据为止,它可以无限阻塞,因此不能指定超时时间

线程也可以阻塞等待获取某个对象锁的排他性访问权限(即等待获得synchronized语句必须的锁时阻塞)。

2、线程的种类

守护线程与线程阻塞的四种情况

Java中有两类线程:User

Thread(用户线程)、Daemon

Thread(守护线程)

用户可以用Thread的setDaemon(true)方法设置当前线程为守护线程。

守护线程是否已经完成了预期的服务任务。一旦所有的用户线程退出了,虚拟机也就退出运行了。

因此,不要在守护线程中执行业务逻辑操作(比如对数据的读写等)。、

setDaemon(true)必须在调用线程的start()方法之前设置,否则会跑出IllegalThreadStateException异常。

在守护线程中产生的新线程也是守护线程。

不要认为所有的应用都可以分配给守护线程来进行服务,比如读写操作或者计算逻辑。

3、线程所操作的数据

同步问题:

4、可重入内置锁

每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。

线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。

获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。

某一个持有同步对象锁的线程可以多次进入这个同步代码块或方法。即同步对象锁可以重入!

同一个线程在调用本类中其他synchronized方法/块或父类中的synchronized方法/块时,都不会阻碍该线程地执行,因为互斥锁时可重入的。

6、Java内存模型

在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。(本地内存+共享主存)

Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。

这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

而volatile关键字就是提示JVM:对于这个成员变量,不能保存它的私有拷贝,而应直接与共享成员变量交互。

volatile型变量的特殊规则:

1、保证此变量对所有线程的可见性。需要注意,volatile变量的写操作除了对它本身的读操作可见外,volatile写操作之前的所有共享变量均对volatile读操作之后的操作可见

2、禁止指令重排序优化

final域能确保初始化过程的安全性,从而可以不受限制地访问不可变对象,并在共享这些对象时无须同步

因此在编码时,不需要将long和double变量专门声明为volatile。

主内存与工作内存

Java内存模型规定所有的变量都存储在主内存中,而每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存副本拷贝,

线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。

根据Java虚拟机规范的规定,volatile变量依然有共享内存的拷贝,但是由于它特殊的操作顺序性规定——从工作内存中读写数据前,

必须先将主内存中的数据同步到工作内存中,所有看起来如同直接在主内存中读写访问一般,因此这里的描述对于volatile也不例外

不允许一个线程丢弃它的最近的assign操作,即变量在工作内存中改变了之后必须把该变化同步回主内存。

如果对一个变量执行lock操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前,需要重新执行load或assign操作初始化变量的值。

对一个变量执行unlock操作之前,必须先把此变量同步回主内存(

7、轻量级同步

volatile是一种稍弱的同步机制,在访问volatile变量时不会执行加锁操作,也就不会执行线程阻塞,因此volatilei变量是一种比synchronized关键字更轻量级的同步机制。

使用建议:在两个或者更多的线程需要访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,没必要使用volatile。

由于使用volatile屏蔽掉了JVM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。

假如有两个线程分别读写volatile变量时,线程A写入了某volatile变量,线程B在读取该volatile变量时,便能看到线程A对该volatile变量的写入操作,

关键在这里,它不仅会看到对该volatile变量的写入操作,A线程在写volatile变量之前所有可见的共享变量,在B线程读同一个volatile变量后,都将立即变得对B线程可见。

happen—before规则介绍

其意思就是说,在发生操作B之前,操作A产生的影响都能被操作B观察到,“影响”包括修改了内存中共享变量的值、发送了消息、调用了方法等,它与时间上的先后发生基本没有太大关系。

线程启动规则:Thread对象的start()方法happen—before此线程的每一个动作。

8、同步锁说明

当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。任何一个对象系统都会为其创建一个互斥锁,

这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁。

如果同一个方法内同时有两个或更多线程,则每个线程有自己的局部变量拷贝。

类的每个实例都有自己的对象级别锁

访问同一个类的不同实例对象中的同步代码块,不存在阻塞等待获取对象锁的问题,

因为它们获取的是各自实例的对象级别锁,相互之间没有影响。

持有一个对象级别锁不会阻止该线程被交换出来,也不会阻塞其他线程访问同一示例对象中的非synchronized代码。

持有对象级别锁的线程会让其他线程阻塞在所有的synchronized代码外。

使用synchronized(obj)同步语句块,可以获取指定对象上的对象级别锁。

类级别锁被特定类的所有示例共享,它用于控制对static成员变量以及static方法的并发访问。具体用法与对象级别锁相似。

10、多线程环境中安全使用集合API

最初设计的Vector和Hashtable是多线程安全的。

在Collections类

中有多个静态方法,它们可以获取通过同步方法封装非同步集合而得到的集合:

public

static

List

synchronizedList(list

l)

List

list

=

Collection.synchronizedList(new

ArrayList());

注意,ArrayList实例马上封装起来,不存在对未同步化ArrayList的直接引用(即直接封装匿名实例)。

这是一种最安全的途径。如果另一个线程要直接引用ArrayList实例,它可以执行非同步修改。

从内存可见性的角度看,写入volatile变量相当于退出同步代码块,而读取volatile变量相当于进入同步代码块。

、volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制。

原因是声明为volatile的简单变量如果当前值与该变量以前的值相关,那么volatile关键字不起作用,也就是说如下的表达式都不是原子操作:“count++”、“count

=

count+1”。

当且仅当满足以下所有条件时,才应该使用volatile变量:

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

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

三、死锁问题

遵循以下原则有助于规避死锁:

1、只在必要的最短时间内持有锁,考虑使用同步语句块代替整个同步方法;

2、尽量编写不在同一时刻需要持有多个锁的代码,如果不可避免,则确保线程持有第二个锁的时间尽量短暂;

3、创建和使用一个大锁来代替若干小锁,并把这个锁用于互斥,而不是用作单个对象的对象级别锁;

四、线程通信

在调用wait()之前,线程必须要获得该对象的对象级别锁,即只能在同步方法或同步块中调用wait()方法。进入wait()方法后,当前线程释放锁。

notify()

该方法也要在同步方法或同步块中调用,即在调用前,线程也必须要获得该对象的对象级别锁,的如果调用notify()时没有持有适当的锁,也会抛出IllegalMonitorStateException。

notify后,当前线程不会马上释放该对象锁,wait所在的线程并不能马上获取该对象锁,要等到程序退出synchronized代码块后,当前线程才会释放锁,wait所在的线程也才可以获取该对象锁),

但不惊动其他同样在等待被该对象notify的线程们。当第一个获得了该对象锁的wait线程运行完毕以后,它会释放掉该对象锁,此时如果该对象没有再次使用notify语句,则即便该对象已经空闲,

其他wait状态等待的线程由于没有得到该对象的通知,会继续阻塞在wait状态,直到这个对象发出一个notify或notifyAll。这里需要注意:它们等待的是被notify或notifyAll,而不是锁。

这与下面的notifyAll()方法执行后的情况不同。

notifyAll使所有原来在该对象上wait的线程统统退出wait的状态(即全部被唤醒,不再等待notify或notifyAll,但由于此时还没有获取到该对象锁,因此还不能继续往下执行),

变成等待获取该对象上的锁,一旦该对象锁被释放(notifyAll线程退出调用了notifyAll的synchronized代码块的时候),他们就会去竞争。

如果其中一个线程获得了该对象锁,它就会继续往下执行,在它退出synchronized代码块,释放锁后,其他的已经被唤醒的线程将会继续竞争获取该锁,一直进行下去,直到所有被唤醒的线程都执行完毕。

如果线程调用了对象的wait()方法,那么线程便会处于该对象的等待池中,等待池中的线程不会去竞争该对象的锁。

当有线程调用了对象的notifyAll()方法(唤醒所有wait线程)或notify()方法(只随机唤醒一个wait线程),被唤醒的的线程便会进入该对象的锁池中,锁池中的线程会去竞争该对象锁。

优先级高的线程竞争到对象锁的概率大,假若某线程没有竞争到该对象锁,它还会留在锁池中,唯有线程再次调用wait()方法,它才会重新回到等待池中。而竞争到对象锁的线程则继续往下执行,

直到执行完了synchronized代码块,它会释放掉该对象锁,这时锁池中的线程会继续竞争该对象锁。

总结:在使用线程的等待/通知机制时,一般都要配合一个boolean变量值(或者其他能够判断真假的条件),在notify之前改变该boolean变量的值,让wait返回后能够退出while循环

(一般都要在wait方法外围加一层while循环,以防止早期通知),或在通知被遗漏后,不会被阻塞在wait方法处。这样便保证了程序的正确性。

五、并发新特性

1、

一般来说,CachedTheadPool在程序执行过程中通常会创建与所需数量相同的线程,然后在它回收旧线程时停止创建新线程,

因此它是合理的Executor的首选,只有当这种方式会引发问题时(比如需要大量长时间面向连接的线程时),才需要考虑用FixedThreadPool。

服务端面向连接:public

static

ExecutorService

newFixedThreadPool(int

nThreads)

Executor执行Runnable任务

Executor执行Callable任务

在Java

5之后,任务分两类:一类是实现了Runnable接口的类,一类是实现了Callable接口的类。两者都可以被ExecutorService执行,

但是Runnable任务没有返回值,而Callable任务有返回值。并且Callable的call()方法只能通过ExecutorService的submit(Callable

task)

方法来执行,

并且返回一个

Future,是表示任务等待完成的

Future。

Callable接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是

Runnable

不会返回结果,并且无法抛出经过检查的异常而Callable又返回结果,

而且当获取返回结果时可能会抛出异常。Callable中的call()方法类似Runnable的run()方法,区别同样是有返回值,后者没有。

当将一个Callable的对象传递给ExecutorService的submit方法,则该call方法自动在一个线程上执行,并且会返回执行结果Future对象。同样,将Runnable的对象传递给ExecutorService的submit方法,

则该run方法自动在一个线程上执行,并且会返回执行结果Future对象,但是在该Future对象上调用get方法,将返回null。

2、自定义线程池

ThreadPoolExecutor类创建,它有多个构造方法来创建线程池

BlockingQueue

版权所有:蓬勃范文网 2010-2024 未经授权禁止复制或建立镜像[蓬勃范文网]所有资源完全免费共享

Powered by 蓬勃范文网 © All Rights Reserved.。蜀ICP备20021444号