当前位置 博文首页 > dreamer_hahaha:python下的数据库、多线程、socket

    dreamer_hahaha:python下的数据库、多线程、socket

    作者:[db:作者] 时间:2021-09-20 22:49

    mysql

    数据库的增删改查

    查:

    import MySQLdb
    # 打开门
    conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='redhat',db='python')
    # 伸出手
    cur = conn.cursor() # 创建了一个"手"
    # 拿东西
    # 这个操作影响了多少行数(有多少行被操作了) execute 执行
    recont = cur.execute('select * from userInfo')
    # 把手伸回来
    cur.close()
    # 把门关上
    conn.close()
    print recont
    

    查看数据库内容

    import MySQLdb
    # 打开门
    conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='redhat',db='python')
    # 伸出手
    cur = conn.cursor()
    # 拿东西
    # 这个操作影响了多少行数(有多少行被操作了)
    recont = cur.execute('select * from userInfo')
    data = cur.fetchall() # fetchall 取出
    # 把手伸回来
    cur.close()
    # 把门关上
    conn.close()
    print recont
    print data
    

    查看数据库内容
    查看数据库表头内容

    import MySQLdb
    # 打开门
    conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='redhat',db='python')
    # 伸出手
    # 拿到数据库的表头 cursor 指针## 标题 ##
    cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)
    # 拿东西
    # 这个操作影响了多少行数(有多少行被操作了)
    recont = cur.execute('select * from userInfo')
    data = cur.fetchall() # fetchall 取出
    # 把手伸回来
    cur.close()
    # 把门关上
    conn.close()
    print recont
    print data
    

    查看表头

    增:

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='redhat', db='python')
    cur = conn.cursor()
    # 操作数据
    sql = 'insert into usermg(id,name,address) values(%s,%s,%s)'
    params = (1, 'wei', 'usa')
    recount = cur.execute(sql, params)
    # 提交请求
    conn.commit()
    cur.close()
    conn.close()
    print recount
    

    插入多条数据

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='redhat', db='python')
    cur = conn.cursor()
    # 操作数据
    sql = 'insert into usermg(id,name,address) values(%s,%s,%s)'
    params = [(2, 'zh', 'sheng'),
              (3, 'ao', 'yun')]
    recount = cur.executemany(sql, params)
    # 提交请求
    conn.commit()
    cur.close()
    conn.close()
    print recount
    

    删:

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='redhat', db='python')
    cur = conn.cursor()
    # 操作数据
    sql = 'delete from usermg where id = %s'
    params = (1,)
    recount = cur.execute(sql, params)
    # 提交请求
    conn.commit()
    cur.close()
    conn.close()
    print recount
    

    改:

    import MySQLdb
    conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='redhat', db='python')
    cur = conn.cursor()
    # 操作数据
    sql = 'update usermg set id = %s where address = %s'
    params = (66,'usa')
    recount = cur.execute(sql, params)
    # 提交请求
    conn.commit()
    cur.close()
    conn.close()
    print recount
    

    多线程

    线程是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)
    它被包含在进程之中,是进程中的实际运作单位。一个进程中可以并发多个线程
    每条线程并行执行不同的任务
    (线程是进程中的一个实体,是被系统独立调度和分派的基本单元)

    每一个进程启动启动时都会最先产生一个线程,即主线程
    然后主线程会再创建其他的子线程
    格式:

    from threading import Thread
    def Foo(arg):
        print arg
    
    print 'before'
    # 线程和函数建立关系
    t1 = Thread(target=Foo,args=(1,))
    t1.start()
    print 'after'
    

    多线程格式

    from threading import Thread
    def Foo(arg):
        print arg
    
    print 'before'
    
    t1 = Thread(target=Foo,args=(1,))
    t1.start()
    print t1.getName()
    
    t2 = Thread(target=Foo,args=(2,))
    t2.start()
    print t2.getName()
    
    print 'after'
    

    多线程格式
    示例:

    def music(a):
        for i in range(2):
            print 'listening %s %s' % (a,ctime())
            sleep(2)
    
    
    def movie(b):
        for i in range(2):
            print 'watching %s %s' % (b,ctime())
            sleep(2)
    
    t1 = Thread(target=music, args=('告白气球',))
    t1.start()
    
    t2 = Thread(target=movie, args=('泰坦尼克号',))
    t2.start()
    
    print '\nall over %s\n' % ctime()
    

    结果

    setDaemon(True)

    守护线程–也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务

    通过setDaemon(true)来设置线程为“守护线程”;将一个用户线程设置为守护线程的方式是在 线程对象创建 之前 用线程对象的setDaemon方法。
    例如:

    from threading import Thread
    import time
    def Foo():
        for item in range(100):
            print item
            time.sleep(1)
    print 'before'
    t1 = Thread(target=Foo)
    t1.setDaemon(True)
    t1.start()
    print 'after'
    

    守护线程

    join( )

    from threading import Thread
    import time
    def Foo():
        for item in range(10):
            print item
            time.sleep(1)
    print 'before'
    t1 = Thread(target=Foo)
    t1.start()
    # 主线程到join()就不往下走了,直到子线程执行完
    t1.join(5)
    print 'after'
    

    join( )

    线程锁

    import threading
    import time
    num = 0
    
    def run(n):
        time.sleep(1)
        global num
        # 线程锁
        lock.acquire()
        num += 1
        print '%s\n' % num
        # 释放线程锁
        lock.release()
    lock = threading.Lock()
    for i in range(1500):
        t = threading.Thread(target=run,args=(i,))
        t.start()
    

    加锁前输出
    加锁前输出
    加锁后输出
    加锁后
    多线程能干什么:
    生产者消费者问题:(经典)
    一直生产 一直消费 中间有阀值 避免供求关系不平衡

    线程安全问题,要是线程同时来,听谁的
    锁:一种数据结构 队列:先进线出 栈:先进后出

    生产者消费者的优点(为什么经典的设计模式)

    1.解耦(让程序各模块之间的关联性降到最低)

    假设生产者和消费者是两个类,如果让生产者直接调用消费者的某个方法,那么生产者对于消费者就会产生依赖(也就是耦合),如果将来消费者的代码发生变换,可能会影响到生产者,而如果两者都依赖于某个缓冲区,两者之间不直接依赖,耦合也就相应降低了
    生活中的例子:我们 邮筒 邮递员
    举个例子,我们去邮局投递信件,如果不使用邮筒(也就是缓冲区),你必须得把信直接交给邮递员,有同学会说,直接交给邮递员不是挺简单的嘛,其实不简单,你必须得认识邮递员,才能把信给他(光凭身上的制服,万一有人假冒呢???),这就产成你和邮递员之间的依赖了(相当于生产者消费者强耦合),万一哪天邮递员换人了,你还要重新认识一下(相当于消费者变化导致修改生产者代码),而邮筒相对来说比较固定,你依赖它的成本就比较低(相当于和缓冲区之间的弱耦合)

    2.支持并发

    生产者消费者是两个独立的并发体,他们之间是用缓冲区作为桥梁连接,生产者之需要往缓冲区里丢数据,就可以继续生产下一个数据,而消费者者只需要从缓冲区里拿数据即可,这样就不会因为彼此速度而发生阻塞
    接着上面的例子:如果我们不使用邮筒,我们就得在邮局等邮递员,直到他回来了,我们才能把信给他,这期间我们啥也不能干(也就是产生阻塞),或者邮递员挨家挨户的问(产生论寻)

    3.支持忙闲不均

    如果制造数据的速度时快时慢,缓冲区的好处就体现出来了,当数据制造快的时候,消费者来不及处理,未处理的数据可以暂时存在缓冲区中,等生产者的速度慢下来,消费者再慢慢处理
    例如:情人节信件太多了,邮递员一次处理不了,可以放在邮筒中,下次在来取
    示例:顾客买包子

    import threading
    import Queue
    import time
    import random
    def Producer(name,que):
        while True:
            if que.qsize() <3:
                que.put('baozi')
                print '%s:Made a baozi======' % name
            else:
                print '还有3个包子'
            time.sleep(random.randrange(3))
    
    def Consumer(name,que):
        while True:
            try:
                que.get_nowait()
                print '%s:Got a baozi' % name
            except Exception:
                print '没有包子了'
            time.sleep(random.randrange(3))
    
    # 创建队列
    q = Queue.Queue()
    p1 = threading.Thread(target=Producer,args=['chef1',q])
    p2 = threading.Thread(target=Producer,args=['chef2',q])
    p1.start()
    p2.start()
    
    c1 = threading.Thread(target=Consumer,args=['tom',q])
    c2 = threading.Thread(target=Consumer,args=['harry',q])
    c1.start()
    c2.start()
    

    买包子

    socket

    什么是socket
    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket
    所谓socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”向网络发出请求或应答网络请求
    socket起源于Uinx,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open–>读写write/read–>关闭close”模式来操作,socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写 IO,打开,关闭)
    Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务

    例如:中国移动客服
    对于移动:一直监听一个号码10086,当有电话进来后,就分配一个客服和客户去沟通并处理请求
    对于用户:需要知道10086这个号码,并需要打电话

    服务端:

    import socket
    
    # 创建socket对象
    sk = socket.socket()
    # 绑定端口和ip
    ip_port = ('127.0.0.1',9999)
    sk.bind(ip_port)
    # 最大连接数
    sk.listen(5)
    
    while True:
        # 获取客户端的ip和端口号
        conn,address = sk.accept()
        conn.send('hello')
        flag = True
        while flag:
            data = conn.recv(1024)
            print data
            if data == 'exit':
                flag = False
            conn.send('sb')
        conn.close()
    

    客户端:

    第二十一章 命运木马

    看着巨大石椅上的半个“愚者”,克莱恩脑海内闪过了刚才经历的那一幕幕与夜之国相关的场景,一时有些感触。

    对于安提哥努斯,他了解并不多,甚至好几次差点因对方“霍纳奇斯……弗雷格拉……”的呓语失控,所以,此刻谈不上有什么同情,只是有点感同身受:

    那始终徘徊于梦中的毫无疑问是过去最美好的记忆之一。

    就算天生属于超凡物种,安提哥努斯似乎也深深地眷念着曾经那个平静宁和的封闭小国。

    克莱恩缓慢地吐了口气,将目光从那位脸上长着粗黑狼毫的男子身上移开,落到了巨大石椅的旁边。

    一本由薄薄黄铜组成的书册静静地摆放于那里,上面不断地交替浮现着三条水银色文字书写的规则。

    “0—02”,“特伦索斯特黄铜书”。

    利用类似“嫁接”的能力完成了封印?嗯,似乎还更进了一步,不仅仅只是将开始部分直接连到了收尾规则,而且还愚弄了“特伦索斯特黄铜书”的灵智,让它忽略掉了被跳过的中间部分,未尝试做出改变,一次又一次地重复……克莱恩瞄了眼“0—02”,若有所思地无声自语了几句。

    这让他对“愚者”会具备什么能力有了一定的猜测。

    没去多想,克莱恩让“诡秘侍者”秘偶将起点和终点“嫁接”在一起,一步走至巨大石椅旁,拾取起了那本“特伦索斯特黄铜书”。

    他这一方面是排除掉接下来可能存在的干扰,另一方面是试探安提哥努斯当前的状态。

    见那半个“愚者”依旧沉睡,无法从永眠中摆脱,克莱恩稍微松了口气,让秘偶拿着“特伦索斯特黄铜书”退至宫殿入口,等待于那里。

    他之所以不让分身去拿这件“0”级封印物,是因为担心与源质存在一定联系的“特伦索斯特黄铜书”会在自己容纳“愚者”唯一性的关键时刻,展现被动的负面影响,让局势往不好的方向急坠而去。

    ——在规避封印物负面影响上,秘偶绝对要强于分身。

    这也是克莱恩没带“星之杖”的原因,他不能将一颗定时炸弹放在身边。

    平时还好,他可以依靠位格、层次和能力强行压制“星之杖”,但容纳“愚者”唯一性的过程中,他会非常脆弱,没办法干涉周围的人和事,稍有一点意外就可能当场失控。

    而为了应对“源堡”被封,无法借用力量的情况,克莱恩又不得不带上可以提供“传送”能力的封印物,于是,他选择了“蠕动的饥饿”。

    这一刻,面对一位掌控着唯一性的天使之王,克莱恩感觉左掌的人皮手套本能地有些颤栗。

    他随即用右手抚摸了下“蠕动的饥饿”,用开玩笑的口吻低语道:

    “不用担心,你只是一个历史孔隙中的影像。”

    以这种方式化解了精神的超额紧绷后,克莱恩环顾一圈,确认了没有其他事物需要处理。

    紧接着,他以手按胸,郑重地对安提哥努斯行了一礼。

    等他直起身体,抬起脑袋时,他的眉心凸显出了一个复杂的,神秘的,虚幻的烙印。

    这烙印就如同一座沾染些许青黑的奇异光门,不断地往周围散发出淡薄的灰白雾气。

    下一秒,克莱恩探出右手,隔着不算远但也绝对称不上近的距离,将安提哥努斯的身体“包容”于五指之间。

    他的手指迅速合拢,腕部一拧,完成了“窃取”。

    他什么都没有获得。

    这一次的尝试失败了。

    克莱恩毫不沮丧,再次开始窃取安提哥努斯的身份、命运和自我认知。

    虽然他已是天使之王中的天使之王,但偷盗方面的能力都来自“源堡”,目前只有序列1层次,而安提哥努斯是被“诡秘之主”污染过的,容纳着“唯一性”的天使之王,两者还是存在明显的差距。

    所以,哪怕安提哥努斯已进入短暂的永眠状态,无力做出反抗,克莱恩也一连失败了很多次。

    对于这种情况,他毫不紧张,更没有半点失望,因为这都是事前就能预料到的,反正只要“窃取”没有完成,“黑夜女神”就不会解除隐秘,让这里与现实的命运互通,也就不会存在外来的干扰,克莱恩有充足的时间和安稳的环境来尝试。

    不知失败了多少次后,克莱恩突然灵感一动,预见到了什么。

    他又一次探出右手,合拢五指,轻轻一拧。

    霍然间,他感觉到有些无形的事物从安提哥努斯身上脱离,飘向了自己。

    与此同时,他眼前似乎出现了一条难以用语言描述的,分出无数支流的波光长河。

    虚幻的河水不断向前流淌,淹没了一条又一条支流,让它们回归了主干。

    这是“命运”的象征,它还有许多不同的形象,比如缓缓转动分成多格的轮盘和首尾相接的巨蛇。这一刻,命运更替时,克莱恩看见的是光之长河。

    下一秒,克莱恩的脑海内浮现出了一副又一副支离的,片段的画面:

    一只刚出生没多久的,长着八条腿的魔狼趴在山丘上,体表粗黑的短毛间有一条又一条透明扭曲的蠕虫来回游动钻进钻出,祂是古神弗雷格拉的幼子,天生的神话生物,此时,祂正看着在尸骨堆里玩耍的姐姐、兄长和部分同族,对它们处理猎物的简单粗暴方式产生了一定的鄙夷,祂认为,把猎物们悬吊起来,慢慢享用,才符合身份;

    这能被称为从神的魔狼最害怕的是自己的父亲,那位强大的,可怕的,疯狂的古神——虽然弗雷格拉已通过本能地交合与繁衍,制造了多位子嗣,分离出了不少非凡特性,但那是不受控制的,没法保证进度,所以,祂依旧疯狂,残忍,嗜血,充满破坏和毁灭的本能,甚至杀死过好几个后裔;

    这只能创造奇迹,实现各种愿望的魔狼追逐着猎物,撕咬或击杀着他们,享受着纯粹的快乐;

    祂对父亲弗雷格拉的从神们都没有太深刻的印象,记得最清楚的是自己很厌恶“愿望之神”科塔尔,哪怕这也是条魔狼;

    另外,祂不喜欢“亡灵之神”萨林格尔,觉得祂阴沉,孤僻,浑身上下都散发着腐烂恶心的气息,倒是“厄运女神”阿曼妮西斯,兼具魔狼和人类的审美,性格温柔,非常擅于安抚心灵,不是那么令狼讨厌,不过,这位女性从神很少出现,总是像个影子,躲在不容易被发现的地方,当然,魔狼记得,自己好几位姐姐和兄长都相当排斥阿曼妮西斯,想夺取祂的位置;

    魔狼见证了自己父亲,那位强大古神的陨落,看见古神鲜血洒满了“厄运女神”阿曼妮西斯的全身,而那混乱的场合里,一份唯一性和一份序列1非凡特性受到牵引,落入了祂的手中;

    祂和自己其中一个姐姐逃离了魔狼一族生活的国度,到处躲藏;

    没有了父亲的庇佑,这只魔狼和祂的姐姐才知道过去那样肆意的生活不是常态,痛苦和危险才是贯穿一切的主题,最终,祂们渡过大海,来到北大陆,于无人的霍纳奇斯山脉建立了一个隐秘的国度;

    祂和祂的姐姐不敢暴露自己,只能少量地搜集信徒,聚拢人口,这样的情况下,祂发明了与生者之国并存的逝者之城,让死去的信徒成为自己的秘偶,以此完成晋升仪式;

    这段岁月虽然充满担忧,但却是这只魔狼记忆里最美好的时光,看着姐姐的信徒越来越多,看着自己的秘偶城镇越来越完善,祂仿佛忘记了外界的纷扰和危险,获得了出生以来的第一次平静;

    受到信徒认知带来的影响,祂和祂的姐姐逐渐多了点所谓的人性;

    大灾变之后,祂终于晋升为“诡秘侍者”,将自己变成人类,以安提哥努斯为姓,离开霍纳奇斯山脉,回归了隐秘国度外的现实世界;

    从这一刻开始,安提哥努斯的记忆和认知愈发支离和破碎,很多时候,祂自己都觉得自己有点陌生;

    祂容纳“愚者”唯一性后,这种情况愈发严重了……

    一幅幅画面闪现中,克莱恩迅速产生了一个认知:

    我就是安提哥努斯,我就是半个“愚者”!

    轰然间,他的身体连连变化,时而是黑发褐瞳,有着书卷气,与周明瑞长相出现融合的克莱恩.莫雷蒂,时而是长发半白,脸上长着粗黑狼毫的安提哥努斯,时而是披着深黑斗篷,让人看不清面容,不断往旁边延伸出滑腻触手的神秘人。

    这一刻,克莱恩的思绪极度混乱,精神状态完全失衡。

    他只能勉强维持着一定的自我认知,在惊涛骇浪般的两股精神风暴冲击下摇摇欲坠。

    与此同时,他还承接了安提哥努斯失控疯狂的命运,身体开始一点点崩溃。

    他的耳畔随即响起了一声声祈祷,一句句赞美,它们交织在一起,形成了一个虚幻的形象,加入了这混乱的战场。

    …………

    罗思德群岛,拜亚姆,愚者教会的钟楼上。

    一个戴着尖顶软帽和单片眼镜的年轻男子突然出现于这里,立在栏杆后,俯视起整座城市。

    “错误”先生阿蒙!

    下一秒,祂看见拜亚姆和远处的新白银城、新月城同时消失,就像被人用橡皮擦从地图上擦掉了一样。

    “没意思。”看到这一幕,阿蒙笑着摇了下头,对此一点也不失望。

    他只是想试一试克莱恩或者“黑夜女神”有没有修复这边的一个“Bug”:

    敲钟之后,祂在某种程度上已算是“愚者”的“时天使”,可以利用这个漏洞,将对方的部分锚直接窃取过来。

    这样的窃取在平时没什么价值,可在举行仪式的关键时刻,非常有用:

    锚的突然减少,必然导致平衡被打破,让克莱恩当场失控!

    阿蒙随即收回目光,抬手正了正右眼戴着的单片眼镜。

    那水晶磨成的眼镜上,仿佛来自星空的光芒骤然亮起。

    第二十二章 开始容纳

    哐当!哐当!

    贝克兰德、特里尔、伦堡和圣密隆等地方的门窗在没有风吹过的情况下,同时合拢,紧紧关闭了。

    “知识与智慧之神”教会的总部,一座白色的高塔内。

    轮值地底区域的卢卡感受到这不同寻常的动静,猛地站了起来。

    作为一名“预言家”,他敏锐地察觉到了有什么事情正在发生。

    这位穿着镶黄铜丝线素白长袍的老者当即使用秘术,一步来到了地底区域的入口,伸手推起大门。

    可是,这于半神而言不算沉重的大门此时此刻竟没有移动分毫,仿佛被无形的力量封死了。

    卢卡.布鲁斯特没强行做各种尝试,转而将目光投向了地底深处。

    那里一片安静,没有半点声音传出。

    这不正常……卢卡不需要依赖本身的非凡能力,就可以判断这里出了问题。

    在平时,地底最深处,总是会传出一阵阵让人毛发立起脊椎发冷的声音,而现在,它就像从未出现过般消失了。

    别人或许不清楚,但卢卡作为知识教会的高层,知道那声音来自一件极为可怕的,就连他都不清楚具体情况的封印物,不可能凭空被抹去。

    当前的情况只能说明一个问题:

    要么那件封印物已经摆脱了限制,转入更加诡异的状态,要么它被更进一步封印,再也无法对外界施加任何影响。

    而无论是哪个可能,都意味着周围潜藏着极致的危险,因为那件封印物的编号是:

    “0—01”!

    拜亚姆残余的那座钟楼顶端,阿蒙单片眼镜上的光芒逐渐消退,恢复了正常。

    这位“错误”先生刚才毫不掩饰地展现了自己新获得的非凡能力,向所有注视着自己的存在表明了一个事实:

    祂已经容纳了“门”的唯一性,取得了相应的权柄!

    祂刚才借此关上了整个世界所有与“门”这个概念相关的事物,最大程度地加强了封闭的效果。

    这就导致正神教会和隐秘组织里处在封印状态的物品短时间内都没法使用,因为没人能解开封印。

    即使有真神从星界降临,可能也得花费一定的时间才能破除限制。

    于是,阿蒙将绝大部分“0”级封印物排除在了接下来可能发生的神战外,不用再考虑相应的干扰。

    当然,这种利用权柄对整个世界施加的影响没法维持太久,除非“错误”先生阿蒙将所有的精力都放在这件事情上,正因为如此,他没有提前去做这件事情,等观察到克莱恩的锚出现了扰动,才猛然发动。

    ——“0”级封印物越是强大,负面效果越是恐怖,能影响神灵层面的更是如此,哪怕序列0的真神,也未必能承受得了太久,所以,真神们是不到使用,不会解开封印,否则这会给祂们自身带来更大的干扰,收获弥补不了损失。

    做完这件事情,阿蒙手掌一撑,轻轻跃起,完没有真神形象地坐到了钟楼顶端的扶栏上。

    祂边望着海平线,边悠闲地等待着隐秘解除,克莱恩容纳“愚者”唯一性的仪式正式开始。

    到时候,祂将为对方敲响丧钟。

    …………

    “黑夜女神”的隐秘世界内。

    克莱恩的意识在“福生玄黄天尊”复苏的意志和安提哥努斯的自我认知、精神烙印连番冲击下,如同暴风雨中的帆船,时而被抛高,时而被拍下,时而被侵蚀,时而被横推。

    这让他的思绪变得极为混乱,几乎就要分裂出两个不同的人格,叫做安提哥努斯和“诡秘之主”的人格。

    与此同时,他的分身也失去了理智,处在行将崩溃成蠕虫漩涡的状态,唯有那个秘偶,目前只是单纯地无人操纵,呆立于原地。

    来自信徒们的一声声祈祷,一句句赞美回荡于克莱恩的耳畔,形成了对应的认知形象。

    这就如同一道堤坝,苦苦抵御着汹涌而来的洪水。

    对于这样的情况,克莱恩不算太陌生,成为“诡秘侍者”,吞下查拉图相关非凡特性后,他就有类似的体验,所以,刚刚在锚的帮助下,度过了最开始的混乱,他就颇为熟练地将安提哥努斯的自我认知、精神烙印导向了“福生玄黄天尊”复苏的意志,让两者彼此侵蚀,纠缠了起来。

    肆掠的“精神风暴”一下减弱了很多,克莱恩的自我意识终于获得了喘息的机会。

    未做平复,他立刻将众多锚形成的神灵形象引入了两种精神污染的纠缠中,试图找到新的平衡。

    但这并不顺利,和之前那次相比,安提哥努斯精神烙印的本质、韧性、疯狂程度都要明显强过查拉图,毕竟这是一位容纳了唯一性,被称为半个“愚者”的天使之王。

    而且,克莱恩还窃取了对方的身份和命运。这带来了另外两个不好的影响:

    他的人格时刻处在分裂边缘,他时不时就认为自己是安提哥努斯,试图将对方的精神烙印与本身的心智做融合;他承接了安提哥努斯失控疯狂的命运,整个身体在不可遏制地崩溃,这带来了更多的,大量的精神污染。

    另外,安提哥努斯的精神烙印与“福生玄黄天尊”复苏的意志并不是完的水火不容,祂们在局部“战场”,在某些方面,呈现出了融为一体的迹象,似乎本来就源于同一个存在。

    这初步证实了克莱恩的一个猜测,那就是作为天生的神话生物,安提哥努斯一出生就带有一定的“天尊”意志,等祂晋升为“诡秘侍者”,这个问题骤然变得严重,让祂产生了不知不觉的异变。到祂容纳了“愚者”唯一性,疯狂似乎直接成为了祂的某一面。

    也就是说,彻底失控前的安提哥努斯在精神上已经是某种程度的缝合怪,祂的自我认知和精神烙印都有部分属于“福生玄黄天尊”,而这在“窃取”中,没法分离。

    和祂相比,查拉图的精神烙印要干净很多,属于“福生玄黄天尊”的只有很小一部分,大多数来自查拉图临死前的强烈情绪。

    两者之所以不同,除了安提哥努斯额外容纳了“愚者”唯一性,还在于前者是在第四纪初成为“诡秘侍者”的,那个时候,“天尊”的意志还没衰退减弱到第五纪后期的程度。

    新的平衡始终无法形成,克莱恩崩溃的速度越来越快:他的身体大半已由透明扭曲的蠕虫组成,并往周围延伸出了一条又一条滑腻邪异的触手。

    就在他竭力保持自我意识,毫不放弃地寻找新平衡时,他崩溃的身体、安提哥努斯疯狂的精神和“福生玄黄天尊”复苏的意志同时进入了沉眠状态。

    这让所有的变化戛然而止,往正常的方向回归。

    而克莱恩的自我意识借助本身对抗梦境和心灵被入侵时的特殊,在这样的沉眠中维持住了一丝清醒。

    这,对,我窃取来的除了安提哥努斯失控疯狂的命运,还有祂现在陷入永眠的命运……而我本身可以在一定程度上对抗永眠……克莱恩抓住那丝清醒,对当前状态有了一定的认知。

    于他而言,这就是机会。

    直到这个时候,他才完地明白“黑夜女神”为什么需要“永暗之河”的河水做媒介才尝试此事。

    这不仅是因为让一位容纳了唯一性的天使之王和祂体内苏醒的“诡秘之主”意志暂时进入永眠状态很困难,还在于永眠状态对克莱恩是利好,这能创造出只有他一丝意志可以活动,其余干扰部沉睡的绝佳环境!

    同时,克莱恩也确认了一件事情:

    自己能在梦境和心灵被入侵时保持清醒,不是“源堡”带来的特殊,因为他体内的“福生玄黄天尊”在此刻也沉眠了。

    虽然这位“诡秘之主”复苏的程度还很有限,但祂的位格,以及与“源堡”的联系,都毫无疑问要强过现在的克莱恩,祂都不能完抵御永眠的侵蚀,克莱恩为什么可以?

    所以,克莱恩认为自己在这方面的特殊应该有部分源于“黑夜女神”的祝福,是他降生时获得的馈赠。

    执掌梦境领域部分权柄的真神给予的祝福和“源堡”附加的气息、力量、神异结合在一起,才形成了这样的特殊!

    仿佛来自梦境深处的轻柔歌声响了起来,克莱恩意识的清醒更进一步加深。

    他没有犹豫,当即调整起体内沉睡的烙印和污染,找到了新的平衡。

    紧接着,他延伸出一条条有着奇异花纹的滑腻触手,调动“源堡”的力量,隔空窃取起安提哥努斯体内的“愚者”唯一性。

    或许是因为他现在就是安提哥努斯,这次的窃取没有失败几次就获得了成功:

    一张铭刻着“愚者”符号的半透明面具从安提哥努斯体内飞了出来!

    那位脸庞长着粗黑狼毫的男子依旧沉睡,如在永眠。

    与此同时,迷蒙的雾气消散,虚幻的星光照入了大厅。

    这座古老的宫殿突兀地出现在了幽暗神秘的星界,出现在了霍纳奇斯山脉主峰的峰顶。

    隐秘被解除了,命运开始交互。

    这个时候,神弃之地,某座山峰上,巨大十字架表面,一层若有似无的阴影帷幕浮现了出来,裂开缝隙,从中走出了位男子。

    祂是穿着简朴白袍,留着浓密金须的亚当,祂的身后紧贴着一道浓郁的,长着五个脑袋的阴影。

    这阴影与祂部分交融了,但还未彻底化为一体。

    亚当抬头望向权柄与象征扭曲成的星界,笑容平和地对背后阴影道:

    “祂们看来还不知道我这一次为什么要以‘空想家’为基石。

    “这个研究成果我从来没告诉过别人。”

    话音刚落,祂表情庄严地低沉开口道:

    “我是一,也是万,是开始,也是结束。”

    祂的眼眸骤然变得虚幻,祂的周围浮现出了一片仿佛包容着所有颜色所有可能的大海。

    亚当随即抬了下手,握住了胸前悬挂的那个银制十字吊坠。

    祂的头顶,顿时跃出了一轮炽烈但虚幻的太阳,祂的左侧,闪电、狂风、海浪等象征交织成了一道俯视万物般的虚影,他的右边,一座长着诸多黄铜眼睛的白色高塔拔地而起。

    这些空想出来的权柄和象征,在混沌大海的推动下,一个接一个地投入了亚当的体内。

    到了最后,与亚当背部紧紧贴着的那道阴影也缩入了祂的身体。

    轰然间,那片包容着所有颜色所有可能的大海高涨了起来,亚当膨胀成了一道仿佛能支撑天地的巨大光影。

    这光影缓慢行走于混沌虚黑的“水面”,抬手指着星界,庄严宣告道:

    “要有光!”

    转瞬之后,整个星界亮了起来,再没有任何隐秘可以潜藏,就连将地球对应的星界部分区域和完整星界、整个宇宙分割开来的无形屏障都凸显了出来。

    此时,一张张无法具体描述的恐怖巨脸正贴在那透明的,多有裂缝的屏障上,无声地注视着里面的场景变化。

    第二十三章 半个旧日

    比灵界更加抽象,仿佛囊括着整个宇宙所有权柄和象征的星界之内,所有事物都呈现了出来,而照亮这里的光芒并非平均分配,它们主要集中在几个地方,层层叠加,交织成了仿佛厚棱镜的斑块。

    这样的斑块共有三个,它们分别封住了不同的的虚幻国度。

    那些国度有的长满了鲜艳的花朵,天空一直明亮,有的似乎由一本本或摊开或合拢的书籍组成,不同的身影穿梭其间,以为乐,有的是一片笼罩着狂风暴雨,电闪雷鸣永不停息的无垠大海。