经典的POSIX多线程程序设计,在POSIX系统下进行C/C++多线程编程必看的一本书。
本书的读者对象是有C/C++编程基础,但是没有线程知识。
本书按照章节,由浅入深,从基本的线程概念,到线程私有数据,实时调度,再到barrier,读写锁,工作队列管理器,并且配合大量注释和实例来演示。
ProgrammingWithPOsiXThreadsPOSIX多线程程序设计[美]Davide.Butenhoff著于磊曾刚译忄因电力出照内容提要枣书深入描述了TEE的开放系统接可标准一POSIX线程,通常称为Pthreads标准。
本书首先解释了线程的基本概念,每括异步编程、线程的生命周期和间步机:然后讨论了些高絞话题,包括属性对象、线程私有数据和实时调度。
此外,本书还讨论了调度的阿题,并给出了避免错误和提髙性能等问题的有价值的建议。
本书使用了大量注释过的实例来解轟实际的概念,并包括Phed的简单索引和对标准化的晨望本书遁合有经验的C语言程序员阅读,也适合多线程编程人员参考纽书在版编目(C|P)数据POSⅨ多线程程序设计/(美)布滕霍夫(Butenhoff,R》著:于磊,曾刚译.一北京:中国电力出版社,2003ISBN75083-1395-XIP..Ⅱ①布②于③曾.,Ⅲ程序没计Ⅳ.TP3111中国版本图书馆CP数据核字(202)第110540号蕃作权合同登记号图字:01-20020712号AuthorizedtranslatlonfromtheEnglishlanguageedion,entitledProgrammingwithPOSIXThreadsbyDavidA.Butenhof,publy,Copyrighto1997Allrightsreserved.Npartofthisbookmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recordingotbyanyinfomationstorageretrievalsystem,withoutpermissionfromthePublisher.CHINESESiMPLIFIEDlanguageeditionpublishedbyChinaElectricPowerPressCopyright的2003本书由培生集团授权出版。
中国电力出版社出版、发行北京三里河路6号100044httpf/wwwinfopuw'er.com.cn汇鑫印务限公司印刷各地新华书店经2003年4月第一版2003年4月北京第印刷787毫米×102毫米16开本20.75印张505千字定价890元版权所有翻即必究〔本书如有印装质量问题,我社发行部负责退换予本书是有关“线程”(thread)和如何使用“线程”的。
在计算机中,“线程”是种能够实现某种功能的基本软件单元。
线稈比传統的进程process)更小巧、更怏捷、更易操作实际上;一旦在操作系统中引入线程,就可以将进程看作包含了数据地址空间、文件和一个(成多个)数据处理线程的综合应用使用线程构建的应用程序能够更加有效地利用系统资源,使用户的界面更加友好,在多处理器系统中不但运行十分快速,而且更加易于维护。
为达到上述目的,你只需要在程序中添加相应的几个简单函数调用,即可调整成另一种编程思路。
通过仔细阅读本书,我希望能够帮助你实现上述目标本书讲述的线程模型通常被称为Pthreads,或者POSIXthreads,更正式的名称应该是POSX1003.le-1995标准。
随后还将提供丶些其他的名称,不过目前你貝需记住Pthreads就够了。
在写本书时,SUN公司的Sola,Dga公司的DigitalUNIX、SGI公司的RX已经支持Pthreads。
其他一些主要的商用UNⅹ操作系统,像IM公司的AX和HP公的HPUX,不久也将支持线程模型,也许在你阅读木书的时候已经丈持Pthreads也已经在Linux利其他UNX系练中实现在个人电脑市场,做软公司的Wn32编程接口和BM的Os12都支持线程编程。
这些线程模型与Pthreads模型之间存在着一定的区别。
为了有效地使用它们,首先必须理解并发、同步和调度等概念,剩下的航是语法和样式的问题,个经验丰富的程序员可以适应这些模型中的任何一个线程模型已经很成功地在应用领域中丿泛运用,下面仅是其中的一些:●有大规模科学计算的程序能够充分利用多处理器系统的高性能程序和库代码能被多线程程序使用的库代码●实时应用程序和库代码●对慢速外设〔如网络和人类)执行输入输出操作的应用程序和库代码读者对象4书适合熟悉在UNX系列操作系统上使用ANSIC开发代码的高级程序人员阅读,并不要求具有线程或其他形状异步编程经验。
第1章介绍有关概念和术语,使你能够继续阅读个书后续部分,建议你不要跳过。
在阅读过程屮,你将发现关于线程各方面的有趣比喻和实例。
最后我希望你能够自已独地使用线程编程。
好了,祝你线程之旅愉快。
关于作者我从一开始就参与Pthreads标准的有关丁作,虽然最初的儿次会议我没有参加。
最后,我被迫在犹他州的雪鸟滑雪场的防雪崩掩体中度过∫一周,观看来自世界各地的代表们向他们」的滑雪板上涂蜡。
我本以为这是一个十分正式、乏味的会议,所以我没有带自己的滑雪板,只能租用滑设备在Pthreads标准最后投票阶段,我同其他几个POSIX丁作组设计线程同步接口和多处理器应用。
我也帮助定义了Aspen线程扩展规范,该规范让经成功应用于X/OpenXSH5我曾在DEC公可工作数年,从麻省分部到新罕布什尔州分部。
我是DEC公司线程架构的创始人之…,并在DigitalUNIX4..上设计并实现了大部分的Pthreads线程接口。
我还帮助人们开发、调试线程代码超过八年之久。
我的一个不成文的座右铭是“并发使生活更美好"。
线程不是面包片,程序员也不是面包师,所以我们只做能够做的事情致谢可能读者并不关心这部分内容,但确实是我和朋友们以及本书合作者希望见到的。
如果你是一个好奇的读者,请务必读下去尽管本书封面上只有我一个人的署名,但像木书这样的项目是不可能完全由一个人来完成的。
因为我了解很多线程知识,至少在线程通信方面相当在行,所以我也可能不需任何帮眇与出…本关于线程的书。
但结果是,本书要比假设的那木书更好。
首先要感谢的是我的经理Jeanfullerton,他给我时间并鼓励我在τ作肘写书。
感谢DECthreads组的其他同仁,他们是:Briankeane、Webbscales、JacquelineBerg、Richardlove、PeterPortante、BrianSilver、Marksimons和Stevejohn感谢GarretSwart,当他还在Digital系统研究中心工作时,就让我们了解POSX标准感谢Nawafbitar,他和Garret一起通宵T作,实现了Pthreads的第一个草案,并且不遗余力地推广POSIX线程标准,让每个人都理解线程到底是个什么东西,没有Garret,特别是如果没有Nawaf,Pthreads可能不会存在,至少不会像现在这么妤(缺乏完美并不是他们的责任——生活本来如此)感谢参与设计cma、Pthreads、UNX98、DCEthreads和DECthreads的所有人的帮助他们是:AndrewbirrellPaulborman、BobConti、BillCox、Jeffdenham、Petergilbert、Rickgreer、Mikegrier、KevinHarrisKenHobday、Mikejones、Steveneiman、BobKnighten、Leslielamport、DougLocke、Paulalong、Finnbarrp.Murphy、BillNoyce,Simonpatience、Haroldseigel、AlSimons、Jimwoodward和Johnzolnowsk特别感谢所有耐心审阅本书草稿的人们,他们是:BrianKemighan、Richstevens、DaveBrownell.billgallmeister、lanGinzburg、WillMorse、BryanO'Sullivan、BobrobillardDaveruddock和BilLewis。
感谢对结构和细节提出改进意见和建议的人们:Devangshah和BartSmaalders帮助回答了一些有关Solaris的问题,BryanO'Sullivan建议使用“舀水的程序员”的比喻感谢AddisonWesleylongmanF]JohnWait和Lanalanglois,他们耐心地等待并鼓励第次写书的我努力写好这本书。
感谢PamelaYee和ErinSweeney,他们管理了本书的整个出版过程。
感谢所有帮助过我的人们。
感谢我的妻子Annelederhos和我的女儿Amy、Alyssa,感谢她们对我的支持和陪伴。
感谢Charlesdodgson(Lewiscarrol),他在其经典小说Alice'sAdventuresinwonderland〈《艾丽丝漫游仙境》)、Throughthelooking-Glass(镜中漫游》)和TheHuntingoftheSnark(《捕猎蛇鲨》)中写了大量的关于线程编程的事情(译者注:是指小说中描写的多人之间的协调、并发T作,作者认为与线程间的同步和协调具有相似的含义)。
序言第1章概述….舀水的程序员幽···血幽噜血■■■自■■■口■平■_■平L·昏■昏罾早平■卩卩甲罾警肀昏罾昏4平平昏罾1昏昏昏1斷■昏1■昏晋11山翟■如■西d旷■晶旷hanm12术语定义…13异步编程是直观的…4关于木书的实例…5异步编程举例16线程的好处7线程的代价08选择线程还是不用线程2219POSIX线程概念第2章线程甲pd21建立和使用线程22线程的生命周期曾■T會32第3章同步…373.1不变量、临界区和谓词甲罪卩↓卩郾■郾看郾↓·T3互斥量3833条件变量…5934线程间的内存可视性第4章使用线程的几种方式∴…4.流水线1甲■曾昏個昏■18142T作组8943客户/服务器第5章线程高级编程5-次性初始化n11152属性11453取消.12054线程私有数据13755实时调度量鲁备14756线程和核实体16第6章POSX针对线程的调整1676.1fork昏山t1山h,,1.1676.2e7363进程结束6.4stdiolt鲁·TTP日■日白'自甲1甲即甲目日血!‘=P平■昏■■Ida=t1765线程安全的函数l7866信号P■昏182第7章Realcode………,…,,,4---.2067.1扩展同步鲁11自會■■p看p山山血即■晷着甲4■20672工作队列管理器『甲目目·由即?日甲■1晶吾hmpp唱p血命血』甲■品甲“■2373对现存库的处理……243第8章避免调试的提示■着酽eskd24881邐免不正确的代码.24982避免性能问题didP曾1血自幽甲p甲助D口1259第9章PoSⅨ多线程快速參考2639.1POSIX10031c-1995选项血·=F■山lF4·P甲Ia26392POSⅨX1003.1c-l995限制.2649.3POSⅨX1003lc-1995接口265第10章标准化过程展望30310.1X/OpenXSH5[UNIX98]102POSⅨX10031…鲁4P日命·h.44即4日4·-T血d哪甲‘4品=F4目“!31110.3POSX1003.14参考文献…",…4…-.17因特网上的线程资源320概述hetimehascome,theWalrussaldrotalkofmarythings,OrshoesaindshipsandsealingWaxoandkingsAndwhythe鵡boinghoAndwhetherpigshavewings-ewisCarrol,Throughthelooking-Glass在计算机专用术语中,线程是指机器中连续的、顺序的属性集合。
一个线程包含执行一系列机器指令所必须的机器状态,包括当前指令位置、地址和数据寄存器等。
个UNX进程可以理解为一个线程加上地址空间、文件描述符和其他数据。
某些UNⅨX版本支持“轻量级”或“变量级”进程,以便可以从进程中剔除部分或者所有数据,从而实现高效性能。
既然线程和轻量级进程都需要地址空间、文件描述符等数据,那么区别何在?区别在于多个线程可以共享一个地址空间,而做不同的事情。
在多处理器系统中,一个进程中的多个线程可以同时做不同的T作当计算机还活在玻璃洞穴中时(译者注:指计算机发展初期),需要处理事先准备好的穿孔卡片。
整个外部世界都在等待计算的结果,顶多可能听到程序员的抱怨声。
但是外部世界并不是一次只做-件事情,逐渐地,计算机开始模拟这种实际模式,增加多程序设计、多重处理、分时共亨、多处理器系统的能力,最终,实现了线程线程能够帮助你的应用程序走出洞穴。
Pthreads则能帮助你以-种优雅、高效、叮移植的方式完成这个厂作。
木章简单介绍理解和使用线程所需要的基本知识,其他章节则会针对各个环节做进一步的详细解释1.1节给出了包含多个化喻的故事,以此说明线程的工作模式。
这个故事并没有什么特别的,但在你理解我所讲的程序员和水桶的含义之前,可能显得有点怿12节给出了本书使用的基本概念和术语。
其中最重要的一个概念需要在此特别介绍,也与全书会对一些重点特别强调的习惯是一致的异步任何两个彼此独立运行的操作是异步的
2025/3/19 2:20:31 8.56MB 多线程 POSIX
1
单片机,特别是MCS-51系列,是电子工程领域广泛应用的微控制器。
MCS-51单片机的内部资源包括一个8位的CPU,4KB的掩膜ROM程序存储器,128字节的内部RAM数据存储器,2个16位的定时器/计数器,1个全双工异步串行口,5个中断源以及两级中断优先级控制器。
此外,还有时钟电路,这对于单片机的运行至关重要。
MCS-51的外部时钟可以通过XTAL1和XTAL2引脚接入外部振荡信号源。
指令周期是以机器周期为基本单位,机器周期由12个振荡周期组成,等于6个状态周期。
在MCS-51中,RAM有两个可寻址区域,分别是20H-2FH的16个单元和字节地址为8的倍数的特殊功能寄存器(SFR)。
参数传递在子程序中通常通过寄存器或片内RAM进行。
中断程序的返回通常使用RETI指令,而在返回主程序前需要恢复现场。
串行口工作方式1的一帧数据包含10位,波特率的设定公式取决于具体应用。
中断响应时间通常在3-8个周期之间,最短响应时间是在CPU查询中断标志的最后一个机器周期后立即执行LCALL指令,需要3个机器周期。
单片机的时钟产生有两种方式:内部和外部。
51单片机的存储器包括ROM和RAM。
在扩展外部存储器时,P0口作为数据和地址总线的低8位,而P3.3口的第二功能是INT1。
中断矢量地址如外部中断0为0003H,外部中断1为0013H。
MCS-51的I/O端口有三种操作模式:读端口数据,读端口引脚和输出。
地址译码方法包括部分地址译码、全地址译码和线选法。
直接寻址可以访问SFR、内部数据存储器低128字节以及位地址空间。
P0口可以作为真正的双向数据总线口或通用I/O口,但作为后者时是准双向口。
在定时/计数器的工作方式中,只有T0能工作于方式三,用于生成波特率。
串行通信的一帧数据包括起始位、数据位、奇偶校验位和停止位。
波特率表示每秒传输二进制位的数量。
中断响应时间是从PC指针到转向中断服务程序入口地址所需的机器周期数。
定时器T0和T1在工作方式1下为16位计数器,范围0-65535。
MCS-51的堆栈是向上生长的,SP始终指向栈顶。
入栈操作是先SP加1再压入数据,而出栈则先弹出数据再SP减1。
MCS51单片机的内部资源包括并行I/O口、定时器/计数器、串行接口和中断系统。
它有8种寻址方式,包括寄存器、直接、立即、寄存器间接、相对、页面、变址和位寻址。
变址寻址是基于16位的程序计数器PC或数据指针DPTR作为基址寄存器,结合8位的累加器A作为变址寄存器。
MCS-51单片机具有111条指令,按长度分为单字节、双字节和三字节指令,并按执行所需的机器周期数进一步分类。
这些指令构成了MCS-51强大的处理能力,使其能够在各种嵌入式系统中发挥关键作用。
理解和掌握这些知识点对于单片机的学习和期末考试至关重要。
2025/3/16 17:44:05 323KB
1
前言1引言11.1什么是操作系统?31.1.1所有延长机器的作业系统41.1.2作为一个资源管理器的作业系统61.2操作系统的历史71.2.1第一代(1945年至1955年)真空管71.2.2第二代(1955年至1965年)晶体管和批处理系统81.2.3第三代(1965年至1980年)的集成电路101.24第四代(1980年至今)个人电脑151.3计算机硬件检查19l.3.1处理器191.3.2内存231.3.3磁盘261.3.4胶带271.3.5I/O设备27(I/O即输入输出)1.3.6总线3013.7启动计算机331.4操作系统动物园331.4.1大型机操作系统341.4.2服务器操作系统341.4.3多处理器的操作系统341.4.4个人电脑操作系统351.4.5掌上电脑操作系统351.4.6嵌入式操作系统.351.4.7传感器节点的操作系统361.4.8实时操作系统361.4.9智能卡操作系统371.5操作系统的概念371.5.1流程381.5.2地址空间401.5.3文件401.5.4输入/输出431.5.5保护441.5.6壳牌441.5.7系统发育个体发育重演461.6系统调用491.6.1流程管理系统调用521.6.2文件管理系统调用561.6.3目录管理系统调用571.6.4杂项系统调用581.6.5在Windows的Win32API591.7操作系统结构621.7.1单片系统621.7.2分层系统631.7.3微内核641.7.4客户-服务器模型671.7.5虚拟机671.7.6出的内核711.8根据C的WORLD721.8.1C语言721.8.2头文件731.8.3大的编程项目741.8.4运行时模型751.9操作系统上的研究761.10本书的其余部分的概要771.11公制单位781.12概要792进程和线程2.1工序832.1.1过程模型842.1.2进程创建862.1.3进程终止882.1.4流程层次结构892.1.5进程国家902.1.6实施流程912.1.7多多建模的建模932.2螺纹952.2.1线程使用情况952.2.2古典的线程模型1002.2.3POSIX线程1042.2.4在用户空间中实现的线程1062.2.5在内核中实现的线程1092.2.6混合实现1102.2.7调度激活1112.2.8弹出式线程1122.2.9使单线程代码中使用多线程技术1142.3进程间通信1172.3.1静态条件1172.3.2关键区域1192.3.3忙等待的互斥1202.3.4睡眠和唤醒1252.3.5信号灯1282.3.6互斥1302.3.7显示器1342.3.8消息传递1402.3.9壁垒1442.4调度1452.4.1调度1452.4.2批处理系统的调度1522.4.3调度互动系统1542.4.4调度实时系统1602.4.5政策与机制1612.4.6线程调度1622.5经典的IPC问题1632.5.1哲学家就餐问题1642.5.2读者和作者的问题1672.6进程和线程的研究1682.7概要169习题95  第3章存储管理99  3.1无存储器抽象99  3.2一种存储器抽象:地址空间101  3.2.1地址空间的概念101  3.2.2交换技术103  3.2.3空闲内存管理104  3.3虚拟内存106  3.3.1分页107  3.3.2页表108  3.3.3加速分页过程109  3.3.4针对大内存的页表111  3.4页面置换算法113  3.4.1最优页面置换算法114  3.4.2最近未使用页面置换算法114  3.4.3先进先出页面置换算法115  3.4.4第二次机会页面置换算法115  3.4.5时钟页面置换算法116  3.4.6最近最少使用页面置换算法116  3.4.7用软件模拟lru117  3.4.8工作集
2025/2/26 1:24:41 84.5MB 操作系统
1
生产者—消费者:在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。
消费者线程从缓冲区中获得物品,然后释放缓冲区。
当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。
当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。
生产者—消费者问题:(1)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者进程的标识符。
说明:有界缓冲区(提示:有界缓冲区可用数组实现)内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。
(2)生产者和消费者各有两个以上。
(3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。
代码可以运行的,放心使用。
2024/10/20 0:58:52 450KB C++
1
C8051F340/1/2/3/4/5/6/7系列器件使用SiliconLabs的专利CIP-51微控制器内核。
CIP-51与MCS-51TM指令集完全兼容,可以使用标准803x/805x的汇编器和编译器进行软件开发。
CIP-51内核具有标准8052的所有外设部件,包括4个16位计数器/定时器、两个具有扩展波特率配置的全双工UART、一个增强型SPI端口、多达4352字节的内部RAM、128字节特殊功能寄存器(SFR)地址空间及多达40个I/O引脚。
2024/9/16 6:52:09 3.91MB C8051F 中文 pdf
1
在开始今天的话题之前,简单的来看有关Python的体系结构。
为了方便起见我做一张导图,让大家有个宏观的认识。
今天本来准备全面的聊聊有关高性能并发这个话题来着,但是周末马上要来了啊。
所以我就取了其中的一点来介绍,关于其他的方面,有兴趣的小伙伴可以和我交流。
谈高效并发,往往脱离不了以下三种方案:1.进程:每个逻辑控制流都是一个进程,由内核来调度和维护。
因为进程有独立的虚拟地址空间,想要和其他控制流通信必须依靠显示的进程间通信,即我们所说的IPC机制2.线程:线程应该是我们最为熟知的。
它本质是运行在一个单一进程上下文中的逻辑流,由内核进行调度。
3.I/O多路复用:应用程序在一个进程的上下文中显式地调
2024/9/13 12:13:04 362KB 聊聊Python中的多线程
1
程序完成段页式虚拟存储管理存储分配、地址重定位和缺页中断处理   为一个进程的内存申请(多少个段,每个段多大)分配内存,当一个进程(完成)结束时回收内存;
   (2)对一个给定逻辑地址,判断其是否缺段、缺页,若不缺段、不缺页,则映射出其物理地址;
   (3)若缺段则进行缺段中断处理,若缺页则进行缺页中断处理。
   假定内存64K,内存块(页框)1K,进程逻辑地址空间最大16个段,每个段最大64K。
假设进程运行前未预先装入任何地址空间。
   输出每次存储分配/回收时,内存自由块分布情况、相关进程的段表和页表信息。
2024/5/12 22:26:31 23KB 段页式 存储管理 重定位
1
(先打开一个程序在计算机中到底是如何运行的.html)2.虚拟内存到底是什么?为什么我们在C语言中看到的地址是假的?3.虚拟地址空间以及编译模式4.C语言内存对齐,提高寻址效率5.内存分页机制,完成虚拟地址的映射6.分页机制究竟是如何实现的?7.MMU部件以及对内存权限的控制8.Linux下C语言程序的内存布局(内存模型)9.Windows下C语言程序的内存布局(内存模型)10.用户模式和内核模式11.栈(Stack)是什么?栈溢出又是怎么回事?12.一个函数在栈上到底是怎样的?13.函数调用惯例(CallingConvention)
2024/4/24 22:23:15 4.94MB 内存管理 C语言
1
主要功能:1.多用户注册各自使用,互不干予。
2.在自己的空间中创建多个相册,并上传多照片进行在线查看管理。
3.相册共享权限可设好友、所有人、指定人,并可指定共享类别、查看密码。
4.强大的相册及照片搜索功能,可按各种属性进行复合查找。
5.照片打印、设为封面、设为用户头像等多种操作。
6.在线大头贴拍照功能,并有数十种相框可供选择。
7.数码照片40多种属性EXIF信息显示。
8.照片可批量打包成ZIP文件下载。
9.对相册及照片添加文字简介功能。
10.强大的在线图片编辑功能(缩放,旋转,水印,裁剪)。
11.类似Windows中的图片缩略图预览模式,方便查看图片。
12.注册用户有二级域名空间可以让访客随时访问自己的空间进行查看及留言。
13.可自由设定相册中的照片排序方式或手动拖拽进行照片排序。
14.上传时用户可自己指定是否需要缩小大图到网页标准尺寸,以节省空间。
15.相册及照片标签输入方式,可按各类标签查看及搜索照片。
16.他人共享照片收藏功能,实时查看、评论、及其它操作。
17.对共享照片投票功能,可按投票数进行排序。
18.图片地址点击复制和短地址功能。
19.好友功能,可将他人加为好友,并查看对方的指定好友相册及发送短消息。
20.公共相册显示区,显示每个用户共享给所有人的相册和照片并可进行显示及评论。
21.用户可按等级权限自由绑定顶级域名代替外部空间地址,空间地址个性化。
22.界面样式自定义并可由用户在前台选择喜爱的空间风格。
23.用户空间个性化定义公告及标题显示,和对访客留言的查看及管理。
24.站内短信功能,提供收件箱、发件箱、已发送、垃圾箱功能。
25.网银、支付宝、财付通、快钱,PayNow(台湾)在线支付,空间自动续费升级,别人代充,充值卡使用管理。
26.用户积分功能,可积分兑换金币并可升级空间。
27.前台违法举报,实时对上传内容进行管理。
28.网站留言功能,用户可实时向管理员反馈信息,管理员后台回复。
29.自动过滤内容和禁传非法文件,防止不正当使用。
30.可针对不同等级,不同分组的用户设置进入时公告。
31.批量用户管理操作,群发短信/邮件,可对列表中的所有用户统一一次操作。
32.后台实时查看及管理用户上传的所有照片和建立的相册。
33.强大的用户查找,根据有效期、最后登录时间,审核及锁定,等级查找。
34.用户等级制,可设每个等级的空间、上传大小、相册和照片个数及其它条数限制。
35.为每个等级设置开启外链、外链地址、开启二级域名及等级费用。
36.注册审核、邮件验证、防重复IP注册、时长注册功能。
37.来访IP限制设定和管理员可登录的IP设定。
38.后台管理员可进行管理权限划分并记录操作日志。
39.可直观设定相册、照片、用户、公告、留言的外部调用参数,支持模板调用。
40.可设置相册及照片的推荐,模板调用。
41.管理员在后台可统一设置用户上传照片后添加的水印。
42.可设置照片需审核后才能显示已共享的照片。
43.导入用户功能,支持ACCESS或Excel中导出的TXT格式信息,分项目一次导入。
44.导出用户功能,可选择条件过滤导出,指定导出项目,导出成txt或Excel格式。
45.后台可指定原图被缩减的最大尺寸,以防巨大图片。
46.页面广告分区添加及管理。
47.随时在线整理硬盘和数据库中的数据,保持数据最优化。
48.前台模板标签调用,可组建自己的照片站页面。
49.上传照片路径可按日期建立目录,确保同一目录下图片不会过多。
50.完善的等级防盗链功能,支持链接排除、链接包含、个人独立设置可以链接的地址。
51.Flash上传模式支持一次选择多图片、进度显示上传。
上传完毕自动生成等比例缩略图。
52.可以同时下载多张网络图片到空间,并可设置水印等功能。
53.上传时可自由设置是否在照片上添加文字水印、图片水印或不添加水印。
54.用户分组设置,可分多组域名及多台服务器协同管理。
55.仅需为程序目录及用户存放目录设置写入及修改权限,系统更安全。
56.完美兼容firefox等其它非IE内核浏览器。
57.三层架构模式开发,扩充及调用更方便。
58.内含ajax文件操作技术,更加提高用户体验,提高系统运行效率。
59.分简体版、繁体版、英文版三种版本。
60.可以和《桃源网络硬盘.Net》用户完全整合。
61.全面的整合接口,支持注册、登录、修改资料及密码、添加、删除、审核、锁定用户,支持不同域名整合。
62.多种数据库支持:ACCESS、MSSQL、MySQL、Oracle。
2023/12/13 8:50:40 1.23MB .net 图片管理
1
ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。
与以往的AutuCAD二次开发工具AutoLISP和ADS不同,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。
所以,使用ARX编程的函数的执行速度得以大大提高。
ARX类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。
2023/11/4 13:15:38 3.15MB CAD二次开发 ObjectARX 中文版
1
共 20 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡