#求助| Java 并发编程|数据结构 | 请各位指点一二 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Ky1inZhang
V2EX    程序员

#求助| Java 并发编程|数据结构 | 请各位指点一二

  •  
  •   Ky1inZhang 2019-12-02 14:49:09 +08:00 1587 次点击
    这是一个创建于 2144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情提要。

    本人搬砖阶段菜鸟一只,打算私下写个小程序,好吧仅仅只是打算。用我能会的捋一遍先。

    小程序粗略计算十个页面够了,查查 UI 框架用原生写。后台接口用 springboot,然后 mybatis,mysql 一套,虽然感觉 mysql 也挺沉的,我只有薅羊毛的谷歌云。

    已知:我有四个值,两个单位人和次。

    A 人,(10 ~ 100)* A 次,

    B 人,(10 ~ 100)* B 次,

    *预期是 A≤B,但数据初期四个值不可预期。

    A 人的 1 次和 B 人的 1 次存在抵消或者兑换关系。

    上面说的可能有些复杂,我觉得像是抢车票或者秒杀。但是又太笼统了。我这也不是搞秒杀,只是考虑一定会有并发,或者说主要是分配问题。

    两个问题==+*+==## | 下面三段我精分了

    1.抢车票用多程模拟的话就是锁住票。 然后我上面的需求,不是多个人抢票,而是多个人抢多个人的票,多了对应关系,人的次数要拆分抵消掉。不是为了抢而抢,而为了节省资源,抢占的分配。想到这里我就不会了,感觉是要往分段和队列方向靠。思维上有点不明朗。想都想不通别说写了。

    简单来说就是 20×30 抵消掉 30×20,怎么不浪费资源不阻塞且效率的运行,这四个数字还是在动态变化的。

    这段我想想又变了,好像用 ConcurrentLinkedQueue 就可以? 虽然我想象的是两方面对冲,但实际上我只能保证单方面出来的结果,对结果排序,实际的执行还是整体看做抢票行为,我想要剥离出来的人向量被忽略掉了。

    2.数据的存储形式,每次的变化肯定是 1 次。

    1).我本来打算用拉链表记录变化值 1,然后 sum 出某天的值,这样还可以出历史记录,但这样总的次数就要全表 sum 了,不科学,所以我想再出一张表存当天的结果。

    2).如果不用拉链表记录 1 次的变化值,那么操作修改一个人的次数值字段,就要不停的访问数据库,感觉会冲突或者锁住,也很浪费资源。能不能程序里处理好然后分段提交到数据库,这就又回到开始的并发问题了。

    总结一下问题,Java 的并发,Java 和数据库的数据结构。 希望各位大佬能指示一下方向或提点一些关键字。

    1 条回复    2019-12-02 23:42:51 +08:00
    crclz
        1
    crclz  
       2019-12-02 23:42:51 +08:00
    应用程序状态应该放在数据库里面,而不是应用程序。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 16:27 PVG 00:27 LAX 09:27 JFK 12:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86