【世界播资讯】criticalsection函数怎么使用(Linux的并行性特征)
通过本文将了解到如下内容:
Linux系统的并行性特征互斥和同步机制Linux中常用锁的基本特性互斥锁和条件变量1.Linux的并行性特征
Linux作为典型的多用户、多任务、抢占式内核调度的操作系统,为了提高并行处理能力,无论在内核层面还是在用户层面都需要特殊的机制来确保任务的正确性和系统的稳定运行,就如同一个国家需要各种法律条款来约束每个公民的行为,才能有条不紊地运转。
(相关资料图)
在内核层面涉及到各种软硬件中断、进线程睡眠、抢占式内核调度、多处理器SMP架构等,因此内核在完成自己工作的时候一直在处理这些资源抢占的冲突问题。
在用户层面的进程,虽然Linux作为虚地址模式操作系统,为每个进程开辟了独立的虚拟地址空间,伪独占式拥有资源,但是仍然存在很多场景不得不产生多个进程共享资源的问题,来完成进程间的通信,但是在Go语言中进程间的通信使用消息来完成,处理地更优雅一些。
在线程层面,线程作为进程的一部分,进程内的多个线程只拥有自己的独立堆栈等少量结构,大部分的资源还是过线程共享,因此多线程的资源占用冲突比进程更加明显,所以多线程编程的线程安全问题是个重难点。
综上可知,无论在kernel还是user space都必须有一些机制来确保对于资源共享问题的解决,然后这个机制就是接下来要说的:同步和互斥。
2.同步和互斥机制
基本概念同步和互斥的概念有时候很容易混淆,可以简单地认为同步是更加宏观角度的一种说法,互斥是冲突解决的细节方法。
所谓同步就是调度者让任务按照约定的合理的顺序进行,但是当任务之间出现资源竞争,也就是竞态冲突时,使用互斥的规则强制约束允许数量的任务占用资源,从而解决各个竞争状态,实现任务的合理运行。
同步和互斥密不可分,有资料说互斥是一种特殊的同步,对此我不太理解,不过实际中想明白细节就行,文字游戏没有意义。
简单来说:
同步与互斥机制是用于控制多个任务对某些特定资源的访问策略同步是控制多个任务按照一定的规则或顺序访问某些共享资源互斥是控制某些共享资源在任意时刻只能允许规定数量的任务访问角色分类整个协调流程涉及的角色本质上只有三类:
不可独占的共享资源多个使用者调度者调度者需要为多个运行任务制定访问使用规则来实现稳定运行,这个调度者可以是内核、可以是应用程序,具体场景具体分析。
重要术语要很好地理解同步和互斥,就必须得搞清楚几个重要术语:
竞争冒险(race hazard)或竞态条件(race condition)最早听说这个术语是在模电数电的课程上,门电路出现竞态条件造成错误的结果,在计算机里面就是多个使用者同时操作共享的变量造成结果的不确定。
临界区临界区域critical section是指多使用者可能同时共同操作的那部分代码,比如自加自减操作,多个线程处理时就需要对自加自减进行保护,这段代码就是临界区域。
3.Linux中常用的锁
在说锁之前还需要知道几个东西:信号量和条件变量。
这两个东西和锁有一定的联系和区别,在不同的场合单独使用或者配合实现来说实现安全的并发,至于网上很多说互斥锁是一种信号量的特例,对于这种特例理解不了也罢。
信号量和互斥锁的场景不一样,信号量主要是资源数量的管理(池化),实际用的频率远不如互斥锁,文字游戏着实无趣,实用主义至上,掌握高频工具的特点正确使用即可,大可不必过于学术派。
在使用锁时需要明确几个问题:
锁的所有权问题 谁加锁 谁解锁 解铃还须系铃人锁的作用就是对临界区资源的读写操作的安全限制锁是否可以被多个使用者占用(互不影响的使用者对资源的占用)占用资源的加锁者的释放问题 (锁持有的超时问题)等待资源的待加锁者的等待问题(如何通知到其他等着资源的使用者)多个临界区资源锁的循环问题(死锁场景)带着问题明确想要达到的目的,我们同样可以根据自己的需求设计锁,Linux现有的锁如果从上面几个问题的角度去理解,就非常容易了。
【文章福利】需要C/C++ Linux服务器架构师学习资料加群812855908(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等)
自旋锁spinlock自旋锁的主要特征是使用者在想要获得临界区执行权限时,如果临界区已经被加锁,那么自旋锁并不会阻塞睡眠,等待系统来主动唤醒,而是原地忙轮询资源是否被释放加锁,自旋就是自我旋转,这个名字还是很形象的。
自旋锁有它的优点就是避免了系统的唤醒,自己来执行轮询,如果在临界区的资源代码非常短且是原子的,那么使用起来是非常方便的,避免了各种上下文切换,开销非常小,因此在内核的一些数据结构中自旋锁被广泛的使用。
互斥锁mutex使用者使用互斥锁时在访问共享资源之前对进行加锁操作,在访问完成之后进行解锁操作,谁加锁谁释放,其他使用者没有释放权限。 加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前进程解锁。
区别于自旋锁,互斥锁无法获取锁时将阻塞睡眠,需要系统来唤醒,可以看出来自旋转自己原地旋转来确定锁被释放了,互斥锁由系统来唤醒,但是现实并不是那么美好的,因为很多业务逻辑系统是不知道的,仍然需要业务线程执行while来轮询是否可以重新加锁。
考虑这种情况:解锁时有多个线程阻塞,那么所有该锁上的线程都被编程就绪状态, 第一个变为就绪状态的线程又执行加锁操作,那么其他的线程又会进入等待,对其他线程而言就是虚假唤醒。
在这种方式下,只有一个线程能够访问被互斥锁保护的资源。
读写锁rwlock读写锁也叫共享互斥锁:读模式共享和写模式互斥,本质上这种非常合理,因为在数据没有被写的前提下,多个使用者读取时完全不需要加锁的。
读写锁有读加锁状态、写加锁状态和不加锁状态三种状态,当读写锁在写加锁模式下,任何试图对这个锁进行加锁的线程都会被阻塞,直到写进程对其解锁。
读优先的读写锁:
读写锁rwlock默认的也是读优先,也就是:当读写锁在读加锁模式先,任何线程都可以对其进行读加锁操作,但是所有试图进行写加锁操作的线程都会被阻塞,直到所有的读线程都解锁,因此读写锁很适合读次数远远大于写的情况。这种情况需要考虑写饥饿问题,也就是大量的读一直轮不到写,因此需要设置公平的读写策略。
在一次面试中曾经问到实现一个写优先级的读写锁,感兴趣的可以想想如何实现。
RCU锁RCU锁是读写锁的扩展版本,简单来说就是支持多读多写同时加锁,多读没什么好说的,但是对于多写同时加锁,还是存在一些技术挑战的。
RCU锁翻译为Read Copy Update Lock,读-拷贝-更新 锁。
Copy拷贝:写者在访问临界区时,写者将先拷贝一个临界区副本,然后对副本进行修改;
Update更新:RCU机制将在在适当时机使用一个回调函数把指向原来临界区的指针重新指向新的被修改的临界区,锁机制中的垃圾收集器负责回调函数的调用。
更新时机:没有CPU再去操作这段被RCU保护的临界区后,这段临界区即可回收了,此时回调函数即被调用。
从实现逻辑来看,RCU锁在多个写者之间的同步开销还是比较大的,涉及到多份数据拷贝,回调函数等,因此这种锁机制的使用范围比较窄,适用于读多写少的情况,如网络路由表的查询更新、设备状态表更新等,在业务开发中使用不是很多。
可重入锁和不可重入锁递归锁recursive mutex 可重入锁(reentrant mutex)非递归锁non-recursive mutex 不可重入锁(non-reentrant mutex)Windows下的Mutex和Critical Section是可递归的。Linux下的pthread_mutex_t锁默认是非递归的。
在Linux中可以显式设置PTHREAD_MUTEX_RECURSIVE属性,将pthread_mutex_t设为递归锁避免这种场景。
同一个线程可以多次获取同一个递归锁,不会产生死锁。而如果一个线程多次获取同一个非递归锁,则会产生死锁。
如下代码对于非递归锁的死锁示例:
MutexLock mutex; voidtesta(){ mutex.lock();do_sth(); mutex.unlock(); } voidtestb(){ mutex.lock();testa(); mutex.unlock(); }
代码中testb使用了mutex并且调用testa,但是testa中也调用了相同的mutext,这种场景下如果mutex是非递归的就会出现死锁。
条件变量condition variables条件变量是用来等待线程而不是上锁的,通常和互斥锁一起使用。互斥锁的一个明显的特点就是某些业务场景中无法借助系统来唤醒,仍然需要业务代码使用while来判断,这样效率本质上比较低。
而条件变量通过允许线程阻塞和等待另一个线程发送信号来弥补互斥锁的不足,所以互斥锁和条件变量通常一起使用,来让条件变量异步唤醒阻塞的线程。
条件变量和互斥锁的典型使用就是生产者和消费者模型,这个模型非常经典,也在面试中经常被问到,示例代码:
#include <stdio.h>#include <pthread.h>#define MAX 5pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t notfull = PTHREAD_COND_INITIALIZER; //是否队满pthread_cond_tnotempty=PTHREAD_COND_INITIALIZER;//是否队空int top = 0;int bottom = 0;void* produce(void* arg){ int i; for ( i = 0; i < MAX*2; i++) { pthread_mutex_lock(&mutex); while ((top+1)%MAX == bottom) { printf("full! producer is waitingn"); //等待队不满pthread_cond_wait(notfull,&mutex); }top=(top+1)%MAX; //发出队非空的消息pthread_cond_signal(notempty); pthread_mutex_unlock(&mutex); } return (void*)1;}void* consume(void* arg){ int i; for ( i = 0; i < MAX*2; i++) { pthread_mutex_lock(&mutex); while ( top%MAX == bottom) { printf("empty! consumer is waitingn"); //等待队不空pthread_cond_wait(notempty,&mutex); }bottom=(bottom+1)%MAX; //发出队不满的消息pthread_cond_signal(notfull); pthread_mutex_unlock(&mutex); } return (void*)2;}int main(int argc, char *argv[]){ pthread_t thid1; pthread_t thid2; pthread_t thid3; pthread_t thid4; int ret1; int ret2; int ret3; int ret4; pthread_create(&thid1, NULL, produce, NULL); pthread_create(&thid2, NULL, consume, NULL); pthread_create(&thid3, NULL, produce, NULL); pthread_create(&thid4, NULL, consume, NULL); pthread_join(thid1, (void**)&ret1); pthread_join(thid2, (void**)&ret2); pthread_join(thid3, (void**)&ret3); pthread_join(thid4, (void**)&ret4); return 0;}
其中pthread_cond_wait的使用是个需要注意的地方:
pthread_cond_wait()是先将互斥锁解开,并陷入阻塞,直到pthread_signal()发出信号后pthread_cond_wait()再加上锁,然后退出。
标签:
相关阅读
-
【世界播资讯】criticalsection函数怎么使用(Linux的并行性特征)
通过本文将了解到如下内容:Linux系统的并行性特征互斥和同步机制Linux中常用锁的基本特性互斥锁和条件变...
2022-11-30 -
每日简讯:allegro软件入门教程(cadence实例入门知识)快和小编学起来
在前面的问答中,提到了如何使用Replay命令去指定快捷键,使用Replay命令去指定快捷键的时候,需要录制s...
2022-11-30 -
【世界播资讯】criticalsection函数怎么使用(Linux的并行性特征)
通过本文将了解到如下内容:Linux系统的并行性特征互斥和同步机制Linux中常用锁的基本特性互斥锁和条件变...
2022-11-30 -
每日简讯:allegro软件入门教程(cadence实例入门知识)快和小编学起来
在前面的问答中,提到了如何使用Replay命令去指定快捷键,使用Replay命令去指定快捷键的时候,需要录制s...
2022-11-30 -
环球热资讯!win8.1激活密钥最新(KMS客户端安装程序密钥)
下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升...
2022-11-30 -
快播:腾讯搜狗输入法开放平台上线 行业客户可一键定制输入解决方案
【TechWeb】11月30日消息,在2022腾讯数字生态大会专场,“腾讯搜狗输入法开放平台”上线,开放智能手机...
2022-11-30 -
全球快看点丨三星越南工厂手机再减产 圣诞节前智能手机出口下降
【TechWeb】11月30日消息,据国外媒体报道,三星电子官方数据显示,在圣诞节销售旺季到来之前的11月份,...
2022-11-30 -
世界快看:法官批准苹果5000万美元和解方案 以了结有关蝴蝶键盘集体诉讼
【TechWeb】11月30日消息,据国外媒体报道,苹果计划支付5000万美元和解蝴蝶键盘集体诉讼的初步解决方案...
2022-11-30 -
geforce g210显卡(amd和nvidia显卡对比)你觉得如何
到目前为止,Gamescom的最大新闻是NVIDIA公布了其新一代消费级GeForce显卡。凭借全新的“RTX”技术,视...
2022-11-30 -
环球新动态:知乎第三季度营收9.12亿元超预期 亏损环比减少39%
【TechWeb】11月30日消息,知乎今日公布2022年第三季度未经审计的财务报告,报告期内,知乎营收9 12亿...
2022-11-30 -
全球今日讯!FaceTime要钱吗 如何使用FaceTime拨打电话
苹果证实使用FaceTime视频通话无需话费。FaceTimne视频通话由于并没有使用通话的网络因此不会收取大家任...
2022-11-30 -
All Share Play功能是什么 你知道吗?
AllSharePlay是一种支持用户在各种三星智能设备之间共享、播放内容的服务。如需使用AllSharePlay,用户...
2022-11-30 -
环球播报:电脑显示屏不显示是怎么回事 电脑显示屏不显示如何解决(显示器自身问题)
随着互联网的普及,电脑已经和其他家用电器一样成为了家家户户必备的东西,它可以帮助我们更好的学习、...
2022-11-30
精彩推荐
阅读排行
相关词
- 世界最资讯丨猎户座双核处理器好不好 猎户座双核处理器介绍
- 环球播报:电脑显示屏不显示是怎么回事 电脑显示屏不显示如何解决(显示器自身问题)
- 环球关注:智能手环哪个好 你比较满意哪一个
- 百度贴吧如何申请吧主 具体申请步骤如下
- 试车变骗车 一男子被三亚警方刑拘
- 海航航空集团旗下海航货运海口=法兰克福航线顺利首航
- 全球看热讯:第一代电脑的起源与特点 发展历史了解
- 【快播报】thinkpad商务本推荐(ThinkPadE531)
- 环球热推荐:ipad如何升级系统 三大方法推荐(使用无线网OTA升级)
- 环球微速讯:lg巧克力手机怎么样 看完下文你就明白了
- 宏碁4752g配置怎么样 宏碁4752g配置介绍
- 徕卡s2价格与评测 你觉得怎么样?
- 通讯!什么是解锁卡贴 解锁卡贴使用方法 iphone6的解锁卡贴
- 笔记本用外接电源,笔记本电池保养
- 《魔兽世界》10.0匠人之勇获得方法攻略
- 资讯:借呗怎么借钱 借呗的使用步骤
- 新华社发布:海南自贸港迎来首单进境飞机发动机更换业务
- 快播:计算机主板维修方法介绍 计算机主板维修的方法
- 《魔兽世界》10.0版本老板全都一个样任务开启方法攻略
- 海南自贸港首单进境飞机发动机更换业务完成
- 原神索赫尔的心愿怎么触发 索赫尔的心愿触发攻略
- 今日关注:《魔兽世界》10.0学院的副本任务位置一览
- 快报:海南航空亮相中国企业家博鳌论坛
- 原神三脚猫渭水非熊怎么解锁
- 焦点热议:追梦国际,华盛昌绘出中国仪器仪表产业“微笑曲线“
- 环球实时:2021年我国未成年网民达1.91亿:玩网游占比62.3%
- 解码·博物馆文创产品开发丨精美灵动的文创产品这样产生
- 寒潮降温来袭 山西各地热力部门多措保供暖
- 海口市龙华区举行“龙华智慧广播·寻找乡村主播”评选活动决赛
- 世界热点!海口首批 宝龙城实现“交房即交证” 彰显实力“家”速度
- 当前短讯!平安证券:冠脉支架集采续约落地 后续相关企业业绩具有较强确定性
- 每日视讯:双眼皮疤痕可以按摩吗 双眼皮疤痕按摩有用吗
- 天天快消息!《宝可梦朱紫》月伊布努力值分配分享
- 全球热讯:FS社员工称工资不高有加班 但工作像玩黑魂有成就感
- 寒潮预警再次来袭 燃气概念股持续拉升
- 世界微资讯!三亚一批项目集中签约、开工 总投资超300亿元
- 液氮榴莲和冷冻榴莲的区别 液氮榴莲放冷藏还是冷冻
- 海南火莲花地质景区:废弃矿山“变身”3A景区
- 类魂游戏《尘埃异变》免费扩展和主机版12月同步推出
- 世界简讯:《孤岛惊魂6》开启免费体验12月6日推出异界DLC
- 天天新动态:灵剑传说手游什么时候出 公测上线时间预告
- 环球速读:三亚东大肛肠医院怎么样?专业正规就诊满意舒心
- 《宝可梦朱紫》沙丘娃捕捉地点
- 热资讯!宝可梦朱紫赛富豪刷新位置点汇总
- 《攻壳机动队》NFT公开 购入者可优先注册同名新游
- 传闻:《使命召唤》以幽灵为主角的内容正在开发
- 反向跳票《刺客信条:英灵殿》“最终篇章”更新现上线
- 每日头条!8强名单尘埃落定 2022四川移动云游戏电竞大赛第二场线上赛圆满收官
- 播报:类银河恶魔城射击游戏《魔骑少女》现已正式上市
- 世界热推荐:Xbox老板也摸鱼 菲尔斯宾塞分享最近上班玩的游戏
- 热点在线丨《光遇》11月30日季节蜡烛位置分享2022
- 世界球精选!纸业股午后涨幅扩大 理文造纸涨超7% 玖龙纸业涨近6%
- 每日讯息!《冒险岛》V194版本“喵喵圣诞节”来啦~在这个冬天萌化你心!
- 环球即时看!《守望先锋:归来》第二赛季预告 12月7日上线
- 环球速讯:5898元起!中兴Axon 40 Ultra航天版开启预售:手机中的太空堡垒
- 每日热讯!《群星》3.6版本“猎户座”更新上线 新星系形状
- 热点聚焦:任天堂手游《失落的龙约》正式停服 停服纪念图公开
- 环球微速讯:腾讯旗下游戏平台QQ游戏大厅正式上架微软应用商店
- 【当前独家】超5亿用户数据遭泄露 Meta被罚款2.65亿欧元
- 环球即时看!南通税务:优化税收营商环境 提升市场主体满意度
- 全球实时:微软:千万别再总是给笔记本充满电了!延长锂电池寿命正确方法分享
- 【环球报资讯】相约《灌篮高手 正版授权手游》三周年庆典,12月3日不见不散!
- 环球今日报丨专家学者探讨普惠数字社区价值及发展路径
- 每日快看:《机甲战士5:雇佣兵》全新DLC公布 将于明年1月发售
- 每日资讯:《中国企业国际化发展白皮书》发布
- 环球播报:《最终幻想7:核心危机 再融合》PS版容量大小曝光 12月11日预载
- 全球简讯:商汤助力沙特阿拉伯培养下一代人工智能人才
- 报告:老龄化群体青睐“购房自住” 全款占比较高
- 航天新征程|25载不懈努力,去追那束光!
- 天天快资讯:《旷野之息》主创参与开发《无限暖暖》 担任执行制作人
- 喜报!《永恒之塔怀旧版》荣获金手指优秀网络游戏奖
- 观焦点:雅迪带头、小牛九号押注,两轮电动车高端化的追逐和迷局
- 世界最新:2021年我国未成年人互联网普及率提升1.9个百分点
- 热文:PS+十二月会免游戏泄露 《质量效应:传奇版》等
- 全球动态:万国数据与DCConnect达成合作,进一步强化公司东南亚及全球平台化优势
- 【全球播资讯】运动耳机风很大,万万没想到这款才是最优选
- 开发商表示《火星孤征》比《飞向月球》长得多
- 今日观点!柯南最新剧场版《黑铁的鱼影》预告海报 2023年4月14日上映
- 世界观察:《冒险岛》V194版本“喵喵圣诞节”来啦~在这个冬天萌化你心!
- 世界微资讯!《守望先锋:归来》第二赛季预告 12月7日上线
- 今日精选:动力电池回收行业爆发在即?汇丰:拐点就在2025年
- 天天微动态丨发售3天破任天堂记录,这位全球顶流最大的惊喜是:
- 每日信息:北京:社区医院有群健康守护者
- 环球观察:“华润系”拼图或再多一块,华润三九并购昆药集团推进,“战事”再起
- 全球热推荐:郭明錤预测四季度iPhone出货量再减两成,和硕与立讯已获Pro系列订单
- 天天新动态:推进生态全要素保护 点击查收湿地类型国家公园新进展
- 英雄联盟瑟雷西是什么英雄?英雄联盟卡尔玛是谁?
- 魔兽世界暗月宝珠如何获得?魔兽世界神秘宝珠怎么获得?
- 魔兽世界卡拉赞在哪里?卡拉赞上层入口在哪?
- 赛博朋克2077画面如何设置?赛博朋克2077亮度在哪调?
- 原神账号价值查询方法是什么?怎么查看原神抽卡出金率?
- lol训练模式怎么开启?lol训练模式不能玩全英雄吗?
- 问道宠物羽化流程有哪些?问道宠物羽化后还能进化吗?
- 我的世界药水怎么做?我的世界药水合成表一览
- 魔兽世界玛拉顿在哪?魔兽世界玛拉顿几个门?
- 好玩的街机游戏有哪些?8090年代街机游戏大全
- 全球最新:安以轩家世到底有多强大,安以轩结过几次婚
- 赛博朋克2077星星结局是什么?赛博朋克2077朱迪最后去哪了?
- 天天快资讯丨葵花进城结局,葵花进城剧情介绍
- 头条:婚姻料理大结局,婚姻料理剧情介绍 一共多少集
- 【环球播资讯】刘亦菲入选好莱坞新星,你觉得她演技好吗
- 剑与远征雪与火如何通关?剑与远征雪与火最后一个宝箱怎么拿?
- 天天快报!熊出没主题曲是什么,熊出没讲的什么
- 环球聚焦:罗仲谦,罗仲谦个人简介 你认识他吗
- 全球关注:陈小纭前后对比,陈小纭前男友都有谁?陈小云恋爱史公布
- 英雄联盟男枪是什么英雄?男枪暴击流和穿甲流哪个厉害?
- 才旺罗布和索朗旺姆什么关系,才旺罗布唱歌如何
- 庆余年什么时候更新 一共多少集
- 每日速读!陪你逐风飞翔一共多少集,陪你逐风飞翔结局怎样
- 环球热讯:杨绛为什么叫先生,杨绛出演过什么
- 当前简讯:loreal是什么牌子,巴黎欧莱雅品牌介绍 你用过这个品牌吗
- 魔兽世界大厨的帽子如何获得?达拉然烹饪商人在哪里?
- 世界速看:电脑桌面图标有蓝色阴影怎么去掉 步骤如下
- 全球百事通!闫学晶现任老公是谁 闫学晶和冯巩什么关系
- 环球最新:耐用鼠标有哪些 耐用鼠标推荐(精灵雷神X1游戏鼠标)
- 【全球速看料】潘南奎被称作韩国最美网红,潘十亿是怎么来的
- usb3.0扩展卡怎么用? USB3.0扩展卡的基本介绍
- 世界球精选!雷神2结局 主演是谁
- 天天滚动:夏普903sh怎么样 (外观、配置分析)
- 黄袍怪在西游记哪一集,黄袍怪是什么妖怪
- 当前视讯!刘水小草是什么电视剧,我是一棵小草剧情介绍 主演是谁
- 股市里举牌是什么意思?股票举牌是利好吗?
- Ipad air使用技巧有哪些 (死机重启及如何进入恢复模式)
- 环球简讯:虎妈猫爸罗丹最后结局,《虎妈猫爸》剧情简介
- 今日热门!千兆收发器是什么 千兆收发器测试标准 如何调整千兆收发器
- 即时:reverse tethering怎么使用 要做哪些准备工作
- 全球看热讯:高通骁龙805处理器怎么样 芯片性能参数简介
- htc怎么解锁 如何确定htc解锁不成功?
- 焦点速看:夜宴的结局谁躲在水缸里面,究竟是谁杀了死婉后?
- 环球视讯!武艺女朋友是谁 武义结婚了吗
- 佳能打印机无法打印怎么办 佳能打印机卡纸了解决方法 有哪些注意事项
- 声美e10怎么样 声美e10评测介绍 一起来看看
- 天天热文:怎么查询自己的学历信息(毕业证无法查询怎么办)
- 看点:空调启动不了是什么原因 原因分析和解决方法分享
- 【世界热闻】iTunes打不开怎么办 解决方法教给你
- 声卡是什么?手机声卡多少钱一个?
- cpu风扇多少钱 要如何挑选
- 世界速读:可以打电话的平板电脑哪个好(精选这5款平板电脑:小度智能学习平板 M10)
- 环球看点!淘宝阿里旺旺免费下载(最新官方正式版阿里旺旺) 开店前的准备
- mp3音乐裁剪器(mp3音乐剪辑器软件推荐)值得收藏
- 【全球报资讯】平板电脑怎么连接电脑 苹果IPAD与电脑相连的具体步骤
- B站35岁女副总裁被曝和24岁UP主结婚 真是身份是什么?
- 王者之剑攻略刷图任务(奇迹最强者魔剑士攻略)让你快速掌握游戏
- 【世界聚看点】十大程控交换机品牌哪款好 十大程控交换机品牌推荐(申瓯)
- isk声卡怎么样 isk声卡调试方法介绍(isk声卡的优点)
- 哪个网络电视好用(网络电视品牌选择推荐:性价比、功能对比)
- 通过qq查对方ip地址(教你通过qq查找对方ip定位)QQ登录信息在哪看?
- 世界视点!免费网页推广软件哪个好(十大免费推广平台排行榜:云淘淘宝推广软件盒子)
- 焦点热门:怎么验证windows正版 下文介绍几个简单的验证方法
- 昆仑山在哪个省哪个市?普通人可以上昆仑山吗?