当前位置: 首页 > news >正文

怎么做购物车网站淘宝网站建设目标是什么

怎么做购物车网站,淘宝网站建设目标是什么,wordpress后台图片,自己做的网站 网站备案流程【0】README 0.1#xff09; 本文描述转自 core java volume 2#xff0c; 旨在理解 java流与文件——内存映射文件 的相关知识#xff1b; 0.2#xff09;内存映射文件的目的是#xff1a; 提高访问速度#xff0c; 缓冲区Buffer#xff1b; 0.3#xff09; 本文干…【0】README 0.1 本文描述转自 core java volume 2 旨在理解 java流与文件——内存映射文件 的相关知识 0.2内存映射文件的目的是 提高访问速度 缓冲区Buffer 0.3 本文干货源代码均为原创 for source code , please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/chapter1/MemoryMapTest.java 【1】intro to 内存映射文件 1.1大多数os 都利用 虚拟内存实现来将 一个文件或文件的一部分映射到 内存中 1.2java.nio 包使内存映射变得简单 下面是我们需要做的 1.2.1首先从文件中获得一个通道 通道是对 磁盘文件的一种抽象 它使我们可以访问诸如内存映射 文件加锁机制以及文件间快速数据传递等操作系统特性干货——通道的定义即对磁盘文件的抽象 FileChannel channel FIleChannel.open(path , options);1.2.2 然后 调用FileChannel 类的map方法从这个通道中获得一个 ByteBuffer。 你可以指定想要映射的文件区域与映射模式 支持的模式有三种Model M1FileChannel.MapMode.READ_ONLY 所产生的缓冲区是只读的 任何对该缓冲区写入都会产生异常M2FileChannel.MapMode.READ_WRITE所产生的缓冲区是可写的任何修改都会在这个时刻写回到文件中M3FileChannel.MapMode.PRIVATE 所产生的缓冲区是可写的 但是任何修改对这个缓冲区来说都是私有的不会传播到文件中 1.3一旦有了缓冲区就可以使用 ByteBuffer 类 和 Buffer 超类的方法读写数据了 1.3.1缓冲区支持顺序和随机数据访问 它有一个可以通过get 和 put 操作来移动的位置如 像下面这样遍历缓冲区中的所有字节 while(buffer.hasRemaining) { byte b buffer.get(); }1.3.2或者像下面这样进行随机访问 for(i0;i CRC32 crc new CRC32(); while(more bytes)crc.update(next byte) long checksum crc.getValue(); 【2】缓冲区数据结构 2.1在使用内存映射时 我们创建了单一的缓冲区横跨整个文件或我们感兴趣的文件区域。我们还可以使用更多的缓冲区来读写大小适度的信息块 2.2本节将简要介绍Buffer 对象上的基本操作。 2.2.1缓冲区定义缓冲区是由具有相同类型的数值构成的数组Buffer 类是一个抽象类 它有众多的具体子类包括ByteBuffer, CharBuffer, DoubleBuffer, IntBuffer, LongBuffer, ShortBuffer 干货——缓冲区定义 Attention StringBufffer 类与这些缓冲区没有关系2.2.2最常用的是ByteBuffer 和 CharBuffer 干货——最常用Buffer的是ByteBuffer 和 CharBuffer2.2.3每个缓冲区都具有 干货——缓冲区的功能 2.2.3.1一个容量 它永远不能改变2.2.3.2一个读写位置 下一个值将在此进行读写2.2.3.3一个界限 超过它进行读写是没有意义的2.2.3.4一个可选标记:用于重复一个读入或写出操作2.2.3.5这些值满足下面的条件 0 标记读写位置 界限 容量 干货——缓冲区中给定标记读写位置界限容量的大小关系 2.2.4使用缓冲区的主要目的是执行写 然后读入循环。 2.2.4.1put方法将值添加到缓冲区2.2.4.2flip方法将界限设置到当前位置并把位置复位到02.2.4.3remaining方法 现在在 remaining 方法返回整数时它返回的值是 “界限—位置”不断地调用get方法2.2.4.4clear方法 在我们将缓冲区的所有值都读入后 调用clear 使缓冲区为下一次写循环做好准备。 clear 方法将位置复位到0 并将界限复位到容量2.2.4.5rewind 或 mark/reset方法 如果你想重读缓冲区 可以使用 rewind或 mark/reset 方法2.2.4.6ByteBuffer.allocate 或 ByteBuffer.wrap 要获得缓冲区调用它们2.2.4.7用来自某个通道的数据填充缓冲区 或用缓冲区的数据写出到通道 干货代码——用来自某个通道的数据填充缓冲区 或用缓冲区的数据写出到通道 ByteBuffer buffer ByteBuffer.allocate(RECORD_SIZE); channel.read(buffer); channel.position(newpos); buffer.flip(); channel.write(buffer); 【3】文件加锁机制多个程序同时修改同一个文件的情形 3.1problem solution 3.1.1problem 多个程序同时修改同一个文件的情形 这些程序需要以某种方式进行通信 不然文件很容易损坏3.1.2solution 文件锁可以解决这个问题 它可以控制对文件或文件中的某个范围的字节 的访问 干货——文件锁的功能 3.2看个荔枝假设应用程序将用户个人信息存储在一个配置文件中 当用户同时调用两个线程操作该文件时 3.2.1第一个线程应该锁定该文件 而第二个线程发现这个文件被锁定了 它必须决策是等待直至解锁还是跳过这个写操作过程干货——文件加锁机制后线程如何决策 FileChannel channel FileChannel.open(path); FileLock lock channle.lock(); 或 FileLock lock channel.tryLock(); Attention 通道是对磁盘文件的一种抽象 干货——再次提醒通道定义即通道是对磁盘文件的一种抽象 对上述代码的分析Analysis A1第一个调用会阻塞直至可获得锁 而第二个调用将立即返回 要么返回锁要么在所不可获得的情况下返回nullA2这个文件将保持锁定状态直至这个通道被关闭 或者在锁上调用 release 方法 3.3你还可以通过下面的调用锁定文件的一部分 FileLock lock(long start, long size, boolean shared) 或 FileLock tryLock(long start, long size, boolean shared) 3.3.1如果shared 标志为 false 则锁定文件的目的是读写 而如果为 true 则这是一个共享锁 它允许多个进程从文件中读入 并组织任何进程获得独占锁 干货——tryLock方法中shared数据域的含义3.3.2并非所有的os 都支持共享锁 因此你可能会请求共享锁的时候得到的是独占的锁。调用 FileLock 类的 isShared 方法可以查询你所持有的锁的类型 干货——共享锁和独占锁的定义 Attention如果你锁定了文件的尾部 而这个文件的长度随后增长超过了锁定的部分 那么增长出来的额外区域是未锁定的 要想锁定所有的字节可以用 Long.MAX_VALUE 来表示尺寸 3.4要确保在操作完成时释放锁与往常一样 最好在一个 try 语句中执行释放锁的操作 try(FileLock lock channle.lock()) {access th elocked file or segment } 对以上代码的分析Analysis A1查看 tryLock API 你会发现以下内容转自 java SE 8 API) 干货中的干货——shared标识的排他锁或共享锁与StandardOpenOption的对应关系 public abstract FileLock tryLock(long position,long size,boolean shared)throws IOException Parameters: position - The position at which the locked region is to start; must be non-negative size - The size of the locked region; must be non-negative, and the sum position size must be non-negative shared - true to request a shared lock, false to request an exclusive lock A2shared 属性值false排他锁 而true共享锁 NonReadableChannelException - If shared is true but this channel was not opened for readingNonWritableChannelException - If shared is false but this channel was not opened for writing也就是说 共享锁shared true 对应的是 FileChannel channel FileChannel.open(path, StandardOpenOption.READ)排他锁shared false 对应的是FileChannel channel FileChannel.open(path, StandardOpenOption.WRITE) 以上对应关系出错的话会抛出异常 Attention 文件加锁机制是依赖于os的 下面是需要注意的 A1在某些系统中文件加锁仅仅是建议性的 如果一个应用未能获得锁它仍旧可以向被另一个应用并发锁定的文件执行写操作A2在某些系统中 不能在锁定一个文件的同时将其映射到内存中A3文件锁是由整个 java 虚拟机持有的。 如果有两个程序是由同一个虚拟机启动的 那么他们不可能每一个都获得一个在同一个文件上的锁。当调用lock 或 tryLock 方法时 如果虚拟机已经在同一个文件上持有另一个重叠的锁那么这两个方法将抛出 OverlappingFileLockExceptionA4在一些系统中 关闭一个通道会释放由 java 虚拟机持有的底层文件上的所有锁。 因此 在同一个锁定文件上应该避免使用多个通道干货——在同一个锁定文件上应该避免使用多个通道A5在网络文件系统上锁定文件时高度依赖于系统 的 因此应该尽量避免
http://www.pierceye.com/news/398041/

相关文章:

  • 网站功能优化的方法营销型网站建设集装箱液袋
  • 建设资讯网站厦门网站建设哪家强
  • 惠阳网站设计开发图片做多的网站是哪个
  • 医院网站建设公司价格低本地网站搭建视频教程
  • 黑客攻击的网站网站开发需要多少钱app
  • 海南建设厅评审网站织梦网站加网站地图
  • 清迈城市建设网站外贸搜索网站
  • 怎样做网站公司网站建设维护管理
  • 伊犁网站制作珠海做网站的公司
  • 乐山市规划和建设局网站房地产基础知识
  • 网站给假冒伪劣产品做推广鞍山网站制作一般需要多少钱
  • 番禺网站开发哪里好ppt模板免费下载完整版免费简约
  • 哪个公司做企业网站好济南网站优化推广公司电话
  • 深圳网站建设外包公司网站流量提供商
  • 网站建设优化服务信息wordpress下载类插件
  • 深圳做网站google推广百度优化是什么
  • 网站开发技术服务费分享经济网站怎么建设
  • 免费seo网站推广在线观看360免费wifi创建失败
  • 服装网站开发嵌入式硬件开发
  • 上海建设厅网站那些网站可以做自媒体
  • 如何查看一个网站流量网店美工课程心得体会
  • 邯郸的网站建设无锡做网站品牌公司
  • 汇编做网站门户网站建设 知乎
  • 教育云平台网站建设云南小程序定制开发
  • 企业自助建站策划方案横沥网站设计
  • 网站开发搜索功能怎么实现中小网站建设都有哪些方案
  • 学科网站建设网页制作和网页制作
  • 公司网站模板大全网站文章编辑
  • 旅游网站建设的总结wordpress多域名移动主题
  • 深圳做网站推荐哪家公司好附近广告公司联系电话